Fluid idea for Life

随笔,杂记

AIR Android开发(三) 使用apk-tool整合native程序时的注意事项

在很早之前,我曾经写过一篇博客,谈到了AIR与本地程序通信,也就是使用apk-tool整合air android的技巧,后来在国外的Blog上看到几篇关于实现的具体说明,有朋友也给我发过邮件询问详细做法,我都是直接将其他人的Blog文章发过去。

在产品开发中,我发现了整合native程序时的一个小问题,在其他Blog上都忽略了这个问题,那就是整合后的程序在Google电子市场上对设备没有正确过滤。正常情况下,使用AIR开发的Android程序,要求系统必须是2.2及以上版本,且CPU必须是ARM v7或更高版本,但是有些手机,比如HTC Legend,可以升级到2.2,但仍不能跑AIR程序,因为CPU版本低了。而使用Flash Builder或Flash CS5等发布的AIR程序是可以正确过滤的。

如果使用apk-tool反编译AIR的安装apk文件,或其他AIR程序的apk文件,或发现其中有了lib目录,下面有个库文件:lib/armeabi-v7a/libNativeABI.so,从文件名分析,这个库应该是用来判断CPU型号的库。只要将lib目录也一并打包到apk中,即可正确过滤所有设备。

PS,如果我们用apk-tool解包AIR的apk文件,还能看到很多有趣的东西,比如AIR中CameraUI,CameraRoll,StageWebView的代码。

Tags: air android, apk-tool