威盛平台的PackageInstaller问题总结
来源:互联网 发布:古希腊风化史淘宝 编辑:程序博客网 时间:2024/04/28 23:33
最近产品测试需要安装一个录音app,自带本地底层库。由于客户的要求,不希望修改system的东西,所以要做成一个第三方程序。
使用NDK编译了libs,将这些库打包进APK里有两种方法Android.mk和eclipse(接下来会转载相关文章),使用压缩文件管理器可以看见APK里已经打包了lib/armeabi/libxxx.so.
然后我很不好的习惯将它放入了/system/app下,程序运行时总是出错找不到so库,一查看 /data/data/包名/lib 下没有发现打包好的so库!
看了PackageManagerService.java才知道:
/* Note: We don't want to unpack the native binaries for
* system applications, unless they have been updated
* (the binaries are already under /system/lib).
* Also, don't unpack libs for apps on the external card
* since they should have their libraries in the ASEC
* container already.
*
* In other words, we're going to unpack the binaries
* only for non-system apps and system app upgrades.
*/
还有几点tips:
1、在Manifest文件里面添加android:sharedUserId="android.uid.system"以及Android.mk里添加LOCAL_CERTIFICATE := platform。这样编译出来的apk和系统应用同一个进程ID,可以共享系统应用数据。
威盛平台签名:java -Xmx2048m -jar out/host/linux-x86/framework/signapk.jar -w build/target/product/security/testkey.x509.pem build/target/product/security/testkey.pk8 old.apk new.apk
2、PackageManagerService.java的内部类AppDirObserver实现了监听app目录的功能:当把某个APK拖到app目录下时,可以直接调用scanPackageLI完成安装。 我们都是直接将app放到/system/app或/data/app下即可,系统会自动安装。使用adb install默认都是装到/data/app下的,SD卡里面的程序手动安装也是如此。
3、手机数据区目录“data/system/packages.xml”文件中,包含了手机上所有已安装应用的基本信息,如安装路径,申请的permission等信息。
- 威盛平台的PackageInstaller问题总结
- Android PackageInstaller 静默安装的实现
- Android PackageInstaller:安装应用的应用
- cocos2dx andriod平台遇到的问题总结
- packageinstaller实验静默安装与卸载的关键代码
- Android PackageInstaller 静默安装的实现(附源码)
- pxa270 平台上面一些问题的解决办法总结
- rk3126 平台上调试遇到的一些问题总结
- 通过高通平台简单总结的权限问题
- PackageInstaller原理
- mtk平台,相关问题总结
- mtk平台,相关问题总结
- HS平台超时问题总结
- 二次开发平台数据导入功能问题总结
- cocos2dx 移值到android平台问题总结
- 关于搭建Android开发平台问题总结
- pyinstaller跨平台python编译问题总结
- 白沙洲新平台搭建-问题总结
- C 项目中的extern "C" {}
- 调停者模式实现对象间简单消息通信
- 安装VM出现这个The MSI 'C:\Users\XXX\AppData\Local\Temp\vmware_1364623535\vmware workstation.msi'
- Flex4 DataGrid添加CheckBox及动态添加数据
- cococs2d-x 封装CCLOG(类 Android 多级日志系统应用)【亲测成功】
- 威盛平台的PackageInstaller问题总结
- Jqgrid入门-Jqgrid分组的实现(八)
- google app engine for java 的web应用程序
- 求大神帮忙解决一下——项目中的工单同步功能怎么实现?
- Centos 安装SVN服务器
- linux中断处理
- cortex-A8 ARM核 opencv程序移植 (4)
- 怎样编写edittext的点击事件
- Android 不同分辨率下如何使字体大小随之变化