任何问题请联系WX:uu16853

买模板送网站采集器 让你轻松放开双手运营网站!

购买更多有优惠!

Android浏览器插件Gears Android开发技术

在Eclipse中我们使用DDMS的File Explorer观察,/data/data/com.android.broweser/app_plugins/gears-0.4.13.1这里包含了Google的Gears插件,Gears是一个很强大的web库,下方可以看到gears.so文件,so是shared object的意思,我们可以理解为windows中的dll动态库。所以Android平台的Chrome Lite浏览器支持的插件可以使用Native C++来编写。    有关Android Gears可以查看 Android Webkit浏览器插件Gears介绍

Android性能与调试很重要 Android开发技术

  用于手持的移动设备,Android软件性能上需要多加考虑。首先Java VM在资源占用上开销是很大的,很多垃圾GC处理机制直接影响到内存释放和整个平台运行的流畅度。   1.节省电量   手机软件必须考虑的问题是省电,如果需要大型处理尽量由服务器处理,直接把结果返回到手持设备上。多线程也是一种奢侈的使用,但是I/O存储必需这样才能保证流畅度,线程的阻塞将会降低用户体验,但是线程间切换调度的开销一直是重点。Android在DDMS中加入了Thread查看。   2.内存占用   在Eclipse+ADT插件的开发方式中,我们在DDMS中可以看到Heap堆内存的显示,Android开发网提示的是Java内存分配方式的问题,尽量产生少的对象,比如字符串操作如果连加比较多,可以使用StringBuilder代替String类。在游戏开发中经常用到的图片可以通过切片的方式从一个大的png图片上截取,或者放在gif文件作为逐帧保存,这样可以共用文件头减小体积。   3.调试工具   Android调试工具主要是模拟器中的Dev Tools和DDMS中的Logcat查看。当然模拟器自带的Dev Tools在功能上还是很详细的,可以显示CPU占用率,内存使用量,在单元测试时需要多加分析。

Android开发路线图 Android开发技术

 目前Android开发路线图是什么呢?下一步Google会有什么动作,一起来看下吧:    实现本地化   目前所有的用户界面程序框架Android 1.0平台都在英语地区覆盖,目前有美国和英国是发售计划中在本月,同时2008年第四季度将会有德语版本上市,2009年第一季度会包含法语、意大利语、西班牙语、中国台湾繁体中文、荷兰、捷克。这些包含字符串、菜单以及新的日期和数字格式。   支持多个APN接入点   目前特性在访问网络时接入点APN(Access Point Nodes )比较单一,Android开发网感觉可能最终会自动判断,比如浏览器使用Internet APN,而发送彩信使用MMS APN。  SIM卡程序工具包 STK  新的功能将允许SIM卡初始动作的各种操作和增值服务。  以上均为2008Q4的计划,下面是2009年Q1的计划表:   IMF输入法框架 Input method framework   这个特性将会提供对文本输入加入虚拟键盘,用户无需物理QWERTY键盘通过屏幕也可以输入,IMF将允许开发人员设计IME输入法程序基于IMF框架。相关特性我们在Android虚拟键盘功能2009年出现也看见过。  IME输入法引擎 Input method engines 这将会允许软键盘、字典、一些感知算法。Android平台可能会包含一些参考IME开发者可以提供IME输入法程序通过Android Market。

巧用Logcat调试程序 Android开发技术

  许多初次接触Android开发的朋友会遇到调试的问题,如何能够根据错误提示迅速的找到“出事地点呢”?在Eclipse+ADT的开发环境中没有好的直接跟踪对象内容的方法,通过使用android.util.Log类可以帮助你自己查找错误和打印系统日志消息。它是一个进行日志输出的API,我们在Android 程序中可以随时为某一个对象插入一个Log,然后在DDMS中观察Logcat的输出是否正常。   android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。根据首字母对应VERBOSE,DEBUG,INFO, WARN,ERROR。当我们在DDMS进行调试时他们的区别并不大,只是显示的颜色不同,但通过Logcat的过滤器我们可以过滤显示某类的,一般对于执行错误的断点,下在Log.e比较合适。但是Android开发网根据规范建议VERBOSE,DEBUG信息应当只存在于开发中,最终版本只可以包含INFO, WARN,ERROR这三种日志信息。在实际使用中,我们最好为每一个类声明一个字符串常量TAG,这样在Logcat中我们可以容易 区分不同的类的日志。例如:  private static final String TAG = "MyActivity";   接下来我们就可以用Log随心所欲的观察Android代码中的每个细节:Log.e(TAG, "android123.com.cn"); 但是要记住这个Log类的参数都是String类型的。下面是DDMS中的Logcat截图:

Android开源但Java限制仍然很大 Android开发技术

  如果刚入Android开发的网友不知道发现一个奇怪的问题:虽然Android开源了但是Java限制还是很大的,同时Google提供给我的SDK和厂商的还存在一定的差距,所以在编译apk的时候仍然存在不小的问题。如果不做山寨机开源了似乎借鉴的code还不是很多,但是能开的这么彻底还是比较少见的,过去看看ReactOS的时候竟然发现是一个18岁的孩子写的类似Windows NT 4或Win2000的开源系统。   Google能推个Java版也不错了,效率高简单易学等特点,但是Android平台的细节问题等到成熟还是需要时间的,程序生命周期由系统管理感觉控制的还是不好,可以想象耗电量还是很大的。  

Android开发中硬编码的好处和坏处 Android开发技术

  在Android开发中有时后代码为了方便直接硬编码,其实这是一种不好的习惯,在PC平台写代码可能直接使用的比较多。在移动平台上有时要考虑多国语言问题,Android设计了getString()方法从资源Res文件夹中读取String字符串,这些字符串以xml形式保存在Values.xml文件中。   Android平台在一定程度上更面向对象,除了Java本身,在构架上仍然使用MVC这样的UI和代码逻辑分离,UI可以专心的设计用户界面,代码可以通过类似Jar或MIDL文件来再发行应用,大大提高了代码复用和维护性。   上面都是硬编码的坏处,其实好处也是有的,从单独语言和简单程序来说具有运行效率高和设计简单等方法,但是对于复杂的工程还是建议MVC方式设计比较合理。Android对于资源文件进行了缓存机制,在R类中进行全局注册,也就是说findViewById之后会对这个xml文件做缓存,比如Layout或String。

Android开发板需要购买吗? Android开发技术

  很多初入嵌入式开发的网友问到Android开发板需要购买吗? 提起开发板过去主要是用于测试嵌入式Linux或Windows Embedded CE驱动、如USB驱动,工控设备时需要用到。谷歌在设计Android平台时仍然采用了源代码全部开放的方式并提供了完整的编译方法,在Mac OS或Linux PC上就可以编译出自己的Android操作系统,烧录到开发板中。   如果过去是硬件相关的或有山寨机生产方向的可以购买一块,只要CPU核心正确就没有问题,注意硬件的配置,如LCD屏、内存大小、COM口接触,有关这方面内容可以查看合作站点ARM926和ARM1136有什么区别一文了解。其本身成本价格很便宜,主要有Intel xScale、FreeScale的CPU众多,部分知名品牌或富士康代工厂可以提供测试的TI或Qualcomm解决方案,喜欢内核方面文章可以在Google Android官方论坛讨论。

Android签名用keytool和jarsigner制作apk文件 Android开发技术

  Android程序的签名和Symbian类似都可以自签名(Self-signed),但是在Android平台中证书初期还显得形同虚设,平时开发时通过ADB接口上传的程序会自动被签有Debug权限的程序。需要签名验证在上传程序到Android Market上时大家都已经发现这个问题了。Android signed制作方法   首先在Android开发时没有安装JDK的网友在Sun官方网站下载JDKhttp://www.java.net/download/jdk6/6u10/promoted/b32/binaries/jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe,其实仅需要中的Keytool和Jarsigner。  详细的签名步骤:  第一步 C:\Program Files\Java\jdk1.6.0_10\bin>keytool -genkey -alias android123.keystore -keyalg RSA -validity 20000 -keystore android123.keystore输入keystore密码:[密码不回显]再次输入新密码:[密码不回显]您的名字与姓氏是什么?  [Unknown]:  android123您的组织单位名称是什么?  [Unknown]:  www.android123.com.cn您的组织名称是什么?  [Unknown]:  www.android123.com.cn您的组织名称是什么?  [Unknown]:  www.android123.com.cn您所在的城市或区域名称是什么?  [Unknown]:  New York您所在的州或省份名称是什么?  [Unknown]:  New York该单位的两字母国家代码是什么  [Unknown]:  CNCN=android123, OU=www.android123.com.cn, O=www.android123.com.cn, L=New York, ST=New York, C=CN 正确吗?  [否]:  Y 输入<android123.keystore>的主密码        (如果和 keystore 密码相同,按回车):  其中参数-validity为证书有效天数,这里我们写的大些20000天。还有在输入密码时没有回显,只管输入就可以了,一般位数建议使用20位,最后需要记下来后面还要用,整个过程如图:   接下来我们开始为apk文件签名了。  第二步   执行下面这句jarsigner -verbose […]

谈谈Android中文短信的实现 Android开发技术

  似乎Google在推出G1时就没有考虑多国问题,Android在发送短信时在编码上处理不是很妥当,在收发一些unicode来实现的国家文字上存在很大的漏洞,比如中文、日文、俄文等等。对于分析短信发送可以直接dump出PDU Header来解决这个问题。两个G1手机只要在截取短信时,比如获取收到短信时判断PDU的原始内容,比较后就不难得出解决方法。  我们在构造时直接通过一个二进制的字节数组来发送UCS2即可,而英文使用7位的编码可以减少字节占用,在一条短信中发送更多的字符内容,稍后我们提供Android中文短信发送的所有源代码。   下面引用过去的分析内容:   发送短消息常用Text和PDU(Protocol Data Unit,协议数据单元)模式。使用Text模式收发短信代码简单,实现起来十分容易,但最大的缺点是不能收发中文短信;而PDU模式不仅支持中文短信,也能发送英文短信。PDU模式收发短信可以使用3种编码:7-bit、8-bit和UCS2编码。7-bit编码用于发送普通的ASCII字符,8-bit编码通常用于发送数据消息,UCS2编码用于发送Unicode字符。一般的PDU编码由A B C D E F G H I J K L M十三项组成。 A:短信息中心地址长度,2位十六进制数(1字节)。B:短信息中心号码类型,2位十六进制数。C:短信息中心号码,B+C的长度将由A中的数据决定。D:文件头字节,2位十六进制数。 E:信息类型,2位十六进制数。F:被叫号码长度,2位十六进制数。G:被叫号码类型,2位十六进制数,取值同B。H:被叫号码,长度由F中的数据决定。I:协议标识,2位十六进制数。J:数据编码方案,2位十六进制数。K:有效期,2位十六进制数。L:用户数据长度,2位十六进制数。M:用户数据,其长度由L中的数据决定。J中设定采用UCS2编码,这里是中英文的Unicode字符。 PDU编码协议简单说明 例1 发送:SMSC号码是+8613800250500,对方号码是13693092030,消息内容是“Hello!”。从手机发出的PDU串可以是08 91 68 31 08 20 05 05 F0 11 00 0D 91 68 31 96 03 29 30 F0 00 00 00 06 C8 32 9B FD 0E […]

Android服务Serivce机制介绍 Android开发技术

  Android操作系统提供了服务机制(Service),提起服务似乎大家并不陌生,Windows操作系统中就包含了大量的后台服务,而谷歌Android平台使用了Linux内核,Linux大多用于服务器提供服务是再正常不过了。   Android开发过程中什么时候需要用到服务(Serivce)呢?   一个后台的程序,比如提供音乐播放,这里服务就像服务器一样,可以支持多个应用程序绑定。比如使用Activity类来播放音乐,当窗口Activity切换到后台时音乐就会停止播放,而使用服务机制就不会存在这个问题,音乐会持续播放。   Android Serivce服务的特点是什么?   资源占用一般较小,长期驻留后台运行,不可视的界面,仅仅实现逻辑和UI层的通讯。但服务的生命周期需要大家理解,相比Activity而言Service优先级更低,按照系统的任务调度来看,当系统内存缺乏时会先结束后台服务,然后是窗口,所有显示在最顶端的程序优先级最高,不会被结束。    

Dalvik虚拟机让山寨和Mozilla很郁闷 Android开发技术

  谷歌Android平台强制使用Dalvik虚拟机提供第三方软件运行层让山寨和Mozilla或者说更多的开发人员对Android操作系统很不“爽”,Java虚拟机的出现让山寨机不得不提高成本失去了竞争优势,而让Mozilla这样的竞争对手知道它们的本地引擎在Java层是无法和Android内置的Native语言写的Webkit相提并论,我们已经看到OperaMini在谷歌移动平台已经渐渐消失了。不提供本地语言可以让Google充分的控制自己平台的软件能力,最终真的需要的公司可以和Google协商来解决这些问题。Dalvik让C++开发人员感到很郁闷,代码效率一直是Java比价难受的地方,涉及运算等性能敏感的问题Android在第三方开发上还是显得力不从心,比如说Voip的编码、视频解码器这些用Java来实现很难想像运行的效率。   不管怎么说Google自己的软件在UI层也是使用Java来可以底层框架交互,所以web浏览器、3D引擎、视频解码器、Voip都是自己垄断的,可以保证竞争公司的出现,比如Adobe的Flash产品和Google公司软件没有直接冲突,所以未来他将以Native形式入驻Android平台是正常的,但是微软的Sliverlight或者说Mozilla的Prism显得很有问题了。

JNI调用Native C++的so动态库仍然可以 Android开发技术

  目前Android 1.0上仍然可以调用本地的程序,我们发现telnetd、shell这样的程序就是通过JNI调用的Native C++原始的so动态库实现的功能。但是我们自己写的Native C程序在上面执行需要Root权限,上传到系统的System/bin下面也是需要权限的。似乎这些只有在G1的Home+Reject(菜单+挂机)键来实现进入工程模式,通过adb调试接口来替换文件的方式来解决。   考虑了许久这仍然需要漏洞去跳入Root权限用户,目前按照Google的策略是对于Android平台发现漏洞后就会执行强制的更新,最终通过Kill Switch服务器来自动结束恶意程序还是等于白费功夫。否则用户在不更新下会产生安全漏洞,经过特殊构造的攻击程序可以直接威胁Android手机的安全。Android开发网分析后发现JNI调用可以使用Linux系统中现成的命令,比如logcat,获取shell还是可行的。自己做Native应用除非不在Google官方的系统中使用,否则正常用户是不会用这么多步骤或冒风险去安装的,对于最终的部署存在很多问题。同时正常的Native通过res/raw方式部署到market可能会被Google移除。

Android中文短信开发技巧 Android开发技术

  提起Android中文短信发送其实实现原理过去我们已经在 谈谈Android中文短信的实现一文讲述了,这里不再赘述。主要是构造PDU header,使用16bit的编码方式即可。   开发过程中需要实现: 1.使用Android 0.9 SDK,该版本的andrid.jar文件实现比较完善,文件大小在11MB左右比最终的Android 1.0 SDK的9MB大了不少。直接引入一个外部的Jar即可。其中0.9版SDK下载地址可以在 Android SDK 0.9 beta测试版发布和下载 该页找到。 2.主要实现就是通过 android.telephony.gsm.SmsMessage.SubmitPduandroid.internal.telephony.gsm.SmsRawData 3.  最终发送时使用 sendTextMessage(String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent) 或着是 sendMultipartTextMessage(String destinationAddress, String scAddress, ArrayList<String> parts, ArrayList<PendingIntent> sentIntents, ArrayList<PendingIntent> deliveryIntents)  不要忘了加入<uses-permission android:name="android.permission.SEND_SMS"></uses-permission>权限,查看内容如图:

Android自带Drawable图片资源库使用方法 Android开发技术

  如何减小APK文件的体积呢?有效的方法就是少用图片等多媒体资源文件,当然今天Android开发网介绍的是Android自带的Drawable图片资源库。平时我们调用资源直接使用R.drawable.xxx。而是用系统内置的资源就需要加入android.R.drawable.xxx。比如我们使用启动时的机器人,就写成android.R.drawable.boot_robot,预览图如下: 系统内置了近百张资源,我们会做一个列表供大家参考使用。    

100% Secure Checkout

PayPal / MasterCard / Visa