ProGuard
摘要:ProGuard工具通过移除不用的代码,用语义上混淆的名字来重命名类、字段和方法等手段来压缩、优化和混淆你的代码。结果是更小的.apk文件,并且更难于被反编译。由于ProGuard能够让你的程序难于被反编译,因此,当你的程序使用了一些机密的信息的时,使用它就显得更加重要。
阅读全文
posted @
2011-06-10 21:19
xirihanlin
阅读(7011)
推荐(0) 编辑
使用internal(com.android.internal)和hidden(@hide)APIs – Part 5
摘要:在本文中,我将向你们展示如何使用那些Internal和Hidden API。
此外,在本文的结尾,我列出了一些自定义的Android平台,它们都包含Internal和Hidden API。我附带了它们,是为了可能你不想花太多时间在这方面,但又想快速的尝试什么。
阅读全文
posted @
2011-06-07 20:56
xirihanlin
阅读(2451)
推荐(2) 编辑
使用internal(com.android.internal)和hidden(@hide)APIs – Part 4
摘要:在上一篇文章里,我描述了如何创建一个自定义的original-android.jar,以及如何创建一个自定义的Android平台来使用这个original-android.jar。这对Hidden API来说足够了。但对Internal API来说,仍然还有一个包袱:Eclipse的ADT插件。它限制使用com.android.internal包中的任何类。
阅读全文
posted @
2011-06-07 20:54
xirihanlin
阅读(6178)
推荐(0) 编辑
使用internal(com.android.internal)和hidden(@hide)APIs – Part 3
摘要:在上一篇中,我已经展示了如何创建一个包含所有internal和hidden API的original-android.jar。
接下来的工作就是要修改已经存在的Android平台(SDK_DIR/platforms/platform-X/android.jar,X表示API等级)。你可以直接使用Part2中创建的original-android.jar替换android.jar。但这样的话,你的所有工程都将直接使用internal和hidden API而没有任何限制。这不够方便,因为在多数的工程中你不希望这样。甚至,你可能更希望禁止这些API(ADT/android.jar的默认行为)。但对于一些特定的工程,你希望能够使用这些internal和hidden API。
为了达到这样的灵活性,你需要创建一个新的自定义的Android平台。当不需要访问internal和hidden API时,你只需使用原有的Android平台。当你使用这些API时,你使用自定义的Android平台。
阅读全文
posted @
2011-06-05 13:51
xirihanlin
阅读(3707)
推荐(1) 编辑
使用internal(com.android.internal)和hidden(@hide)APIs – Part 2
摘要:在上一篇中,我解释了为什么我们不通过反射就会很难使用internal和hidden API。这是因为android.jar中就没包含这些API,因此,没人能够在编译时引用这些类。
这篇文章将描述如何还原最初的android.jar。这将允许我们像使用公开的API那样使用internal和hidden API。
阅读全文
posted @
2011-06-05 13:48
xirihanlin
阅读(4826)
推荐(3) 编辑
使用internal(com.android.internal)和hidden(@hide)APIs – Part 1
摘要:Android有两种类型的API是不能经由SDK访问的。
第一种是位于com.android.internal包中的API。我将称之为internal API。第二种API类型是一系列被标记为@hide属性的类和方法。从严格意义上来讲,这不是一个单一的API,而是一组小的被隐藏的API,但我仍将其假设为一种API,并称之为hidden API。
阅读全文
posted @
2011-06-05 13:45
xirihanlin
阅读(8312)
推荐(2) 编辑
ListView性能[译]
摘要:原文路径:http://blog.jteam.nl/2009/09/17/exploring-the-world-of-android-part-2/ ListView是一种可以显示一系列项目并能进行滚动显示的View。在每行里,既可以是简单的文本,也可以是复杂的结构。一般情况下,你都需要保证ListView运行得很好(即:渲染更快,滚动流畅)。在接下来的内容里,我将就ListView的使用,向大家提供几种解决不同性能问题的解决方案。 如果你想使用ListView,你就不得不使用ListAdapter来显示内容。SDK中,已经有了几种简单实现的Adapter: · ArrayAdap
阅读全文
posted @
2011-04-11 17:40
xirihanlin
阅读(3527)
推荐(2) 编辑
第9章 小结
摘要:像SMS和即时消息技术为人与人之间的通信提供了一个越来越通用的平台。 Android允许你使用这些基于文本的通信渠道来创建应用程序,并使用即时消息和SMS文本来发送消息,同时,还为设备间交换数据提供了不可见的数据通道。 在这一章,你学习了如何使用GTalk服务来连接IM会话和如何使用这些会话来发送和接收文本和数据消息。你还学习了Presence、如何设定自己的Presence和如何查找IM名单上联...
阅读全文
posted @
2009-11-22 14:06
xirihanlin
阅读(560)
推荐(0) 编辑
自动Emergency Responder
摘要:在接下来的例子中,你将为上一个例子中的“Set up Auto Responder”按钮添加后台代码,来自动回复那些关心你状态的请求。 1. 首先,创建一个新的autoresponder.xml layout资源文件用于布局自动回复设定的窗口。包含一个EditText来输入要发送的状态消息,一个Spinner用于选择自动回复的终止时间,一个CheckBox用于让用户选择是否...
阅读全文
posted @
2009-11-22 14:05
xirihanlin
阅读(819)
推荐(0) 编辑
Emergency Responder SMS 例子
摘要:在这个例子里,你将创建一个SMS应用程序,它将Android手机变成紧急响应的信号站。 一旦完成这个程序,下次你不幸接近一个外来入侵或是发现你在一个机器人暴乱的场景中,你就能设置你的手机,用一条友好的消息(或是一个紧急求救的呼喊)来自动回复你的朋友和家庭成员关于你自身状况的询问。 为了让可能的拯救变得更容易,你将使用基于位置的服务来告诉你的救星找到你的精确位置。SMS网络基础设施的强壮性使SMS成...
阅读全文
posted @
2009-11-22 14:03
xirihanlin
阅读(1100)
推荐(0) 编辑
处理数据SMS消息
摘要:基于安全原因,1.0版本限制了对接收到的数据消息的访问。接下来的章节之所以留下来,是因为将来这些功能有可能是可获得的。 数据消息的接收和提取与一般SMS文本消息一样,如上述章节所示。 为了提取在数据SMS中的数据,使用getUserData和getUserDataHeader方法,如下面的片段所示: byte[] data = msg.getUserData(); SmsHeader heade...
阅读全文
posted @
2009-11-22 13:58
xirihanlin
阅读(728)
推荐(0) 编辑
模拟SMS消息
摘要:有两种技巧可在模拟器中模拟SMS消息。第一种方式是本章节之前描述的;第二种是通过一个模拟器向另一个模拟器发送SMS消息,将端口号视为目标地址。 很方便的,你可以使用第2章中介绍的Android调试工具来模拟从任意号码发送的SMS消息,如图9-2所示。 图9-2
阅读全文
posted @
2009-11-22 13:57
xirihanlin
阅读(472)
推荐(0) 编辑
监听SMS消息
摘要:当设备接收到一条新的SMS消息时,就会广播一个包含了android.provider.Telephony.SMS_RECEIVED动作的Intent。注意,这个动作是一个字符串值,SDK 1.0不再包含对这个字符串的引用,因此,在你的应用程序中,你需要显式的指定它。 对于应用程序监听SMS Intent广播,首先需要添加RECEIVE_SMS权限。通过在应用程序manifest中添加一个uses-...
阅读全文
posted @
2009-10-22 22:42
xirihanlin
阅读(18611)
推荐(3) 编辑
发送数据消息
摘要:你可以使用SMS Manager的sendDataMessage方法来发送二进制数据。sendDataMessage方法很像sendTextMessage,但包含额外的参数——目标端口和你要发送数据的字节数组。 接下来的框架代码显示了发送一个数据消息的基本结构: Intent sentIntent = new Intent(SENT_SMS_ACTION); Pendin...
阅读全文
posted @
2009-10-22 22:38
xirihanlin
阅读(863)
推荐(0) 编辑
追踪和确认SMS消息传递
摘要:Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 为了追踪发出的SMS消息的传送和成功送达,实现并注册Broadcast Receiver来监听你在sendTextMessage方法中传入的PendingIntent的动作。 第一个PendingIntent参数,sentIntent...
阅读全文
posted @
2009-10-15 22:33
xirihanlin
阅读(5754)
推荐(0) 编辑
发送文本消息
摘要:Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 为了发送一个文本消息,使用SMS Manager的sendTextMessage方法,传入接收者的地址(电话号码)和你想发送的文本消息,如下面的片段所示: String sendTo = “5551234”; ...
阅读全文
posted @
2009-10-12 22:33
xirihanlin
阅读(764)
推荐(0) 编辑
发送SMS消息
摘要:Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 在Android中,SMS消息是由SmsManager来处理的。你可以使用SmsManager的静态方法getDefault来获得SMSManager的一个引用,如下面的片段所示。 SmsManager smsManager = Sm...
阅读全文
posted @
2009-10-12 22:31
xirihanlin
阅读(604)
推荐(0) 编辑
SMS介绍
摘要:Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 如果你拥有移动电话不到20年的话,你应该很熟悉短信功能了。SMS(短信服务)是现在移动电话上最广泛使用的特征之一,许多人热爱它甚至超过打电话。 SMS技术是设计用来在移动电话间发送短文本消息的。它提供对发送文本消息(设计由人们来阅读)...
阅读全文
posted @
2009-10-07 21:36
xirihanlin
阅读(1247)
推荐(0) 编辑
接收数据消息
摘要:Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 为了监听数据消息,注册一个Broadcast Receiver,来过滤发送的Intent中所包含的动作字符串。 GTalk数据消息和一般的广播Intent处理一样,所以,当它们被Broadcast Receiver接收时,它们没有任何...
阅读全文
posted @
2009-10-07 21:30
xirihanlin
阅读(844)
推荐(0) 编辑
发送数据消息
摘要:Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 一个好的习惯是当向远程设备广播Intent时创建自定义的动作,如下面的片段所示: public static final String ACTION_OTA_ELIMINATE = “com.paad.ota_elimin...
阅读全文
posted @
2009-10-07 21:29
xirihanlin
阅读(530)
推荐(0) 编辑