zoukankan      html  css  js  c++  java
  • MTK平台Android项目APK预置方案

     项目开发中,通常需要向系统中预置一些APK,这里简单介绍一下MTK平台预置APK的方法。

     

    需要预置的apk可以放置在目录:vendor/mediate/${Project}/artifacts/out/target/product/${Project}下,

    大致可以分成两种情况:

    • 用户不可卸载的:

    相应的apk直接放在目录:system/app下即可。

    注:需要将apk中的动态库手动提取出来,并置于system/lib下面。

    • 用户可以卸载:

    相应的apk直接放在该目录下:data/app,这样用户就可以手动进行卸载了。

    • 还有一种情况,当用户卸载该APK后,恢复出厂设置还可以还原出来:

    MTK平台已经支持该特性,具体操作方法如下:

     ²  在mediatek/config/${Project}/ProjectConfig.mk中修改:

    MTK_SPECIAL_FACTORY_RESE=yes

    ²  在system下新建目录appbackup,将需要恢复的apk拷贝到这个目录。

    ²  在data/app目录下创建一个隐藏的空文件,命名为.keep_list

    ²  在system/app目录下创建一个隐藏文件,命名为.restore_list,并写入类似的语句:

    /system/appbackup/XXX.apk,即需要恢复的apk的路径。

    这样,当卸载了/data/app下的apk之后,再恢复出厂设置,系统会从.restore_list文件中读取apk的名字,然后从/system/appbackup目录下把相应的apk重新拷贝的/data/app下,从而恢复用户已经卸载的apk。

    注:需要将apk中的动态库手动提取出来,并置于system/lib下面。

    对于以上方法,MTK都有详细的文档说明,可以按照相关文档进行操作。

     

     

    WIND第三方APK预置方案:

    基于软件版本的管理问题,在代码中,我们分非量产和量产两个目录来管理所有的APK信息,二者分别对应非量产版本和量产版本,并且在ProjectConfig.mk中添加了一个量产宏MTK_ENABLE_MASS_SUPPORT来控这些APK的拷贝:

     

    图表 1  量产宏的定义

    从上面的描述中,我们可以得出APK的预制方法:

    1. 中移适配的APK资源,分别放在mass和unmass目录下;相关的so库分别放在对应的system/lib下
    2. 中兴提供的入库合入的APK资源,分别放在mass和unmass目录之下;相关的so库分别放在对应的system/lib下
    3. 中兴提供的量产阶段的APK资源,放在mass目录下;相关的so库分别放在对应的system/lib下即可
  • 相关阅读:
    安装的时候,突然安装程序关闭,的灵异问题。
    CSAPP阅读笔记(1)-序
    CSAPP阅读笔记(2)-虚存管理
    nafxcwd.lib(afxmem.obj) :error LNK2005:"void * __cdecl operator new(unsigned int)"
    Linux内核源代码情景分析读书笔记(5)-关于fork/clone/vfork
    [转]调试经验总结VC下的错误对话框
    IP数据包首部的校验和算法
    Matlab画图及生成exe文件
    VC++6.0中的new
    Linux内核模块编译、加载&卸载及查看运行结果
  • 原文地址:https://www.cnblogs.com/caidi/p/3473742.html
Copyright © 2011-2022 走看看