项目开发中,通常需要向系统中预置一些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下即可

MTK平台Android项目APK预置方案的更多相关文章

  1. 关于MTK平台SIM-ME Lock的配置方案

    针对一些运营商的锁网需求,MTK平台已经对其有很好的支持.绝大多数的海外需求可以通过直接配置相关文件来完成.这里简单描述一下配置方法,不做原理分析. 相关数据结构分析: Modem中与SML锁网配置相 ...

  2. MTK平台Android中常用的路径

    开机Logo的路径: bootable\bootloader\lk\dev\logo 开机Logo图片分辨率路径: device\rq\rq6735_35gt_b_l1\ProjectConfig.m ...

  3. eclipse将android项目生成apk并且给apk签名

    转载:http://www.cnblogs.com/tianguook/archive/2012/09/27/2705724.html 生成apk最懒惰的方法是:只要你运行过android项目,到工作 ...

  4. 第07讲- Android项目的打包apk

    第07讲Android项目的打包apk 方法一:在工作目录bin文件夹下有一个与项目同名的apk文件 (最懒惰的方式,不推荐,不安全,不利于版本更新,只有在开发模式时使用) 方法二:使用key方式 签 ...

  5. [转] Ant 编译 Android 项目为 Apk 实战, 常见问题解决

    补充,自行安装Ant, 配置ant环境变量, 在android 项目 根目录下使用 android update project 可以自动生成 build.xml 和 local.peoperties ...

  6. 怎样预置Android 手机 APK

    预制APK有下面4种情况: 1, 怎样将带源代码的 APK 预置进系统? 2, 怎样将无源代码的APK预置进系统? 3, 怎样预置APK使得用户能够卸载,恢复出厂设置时不能恢复? 4, 怎样预置APK ...

  7. (转)在eclipse中将android项目生成apk并且给apk签名

    转:http://www.cnblogs.com/tianguook/archive/2012/09/27/2705724.html 生成apk最懒惰的方法是:只要你运行过android项目,到工作目 ...

  8. Android基础之用Eclipse搭建Android开发环境和创建第一个Android项目(Windows平台)

    一.搭建Android开发环境 准备工作:下载Eclipse.JDK.Android SDK.ADT插件 下载地址:Eclipse:http://www.eclipse.org/downloads/ ...

  9. IDEA运行android项目一直是同一个apk

    1.IDEA运行android项目时不像eclipse和android studio那样直接运行,IDEA需要设置Artifacts,这样每次运行的时候它才能重新编译,以下附上步骤! 这样就可以了.

随机推荐

  1. 导入导出Mysql数据库、表结构、表数据

    由sql文件导入 mysql -uusername -ppwd < ./abc.sql 导出整个数据库的表结构 mysqldump -uroot -pdbpasswd -d dbname > ...

  2. windows中操作文件和目录的函数

    1.文件操作函数       CreateFile();//创建或打开文件      ReadFile();//从文件读      WriteFile();//向文件写      SetFilePoi ...

  3. Python中enumerate()的使用方法

    enumerate 函数用于遍历序列中的元素以及它们的下标: >>> for i,j in enumerate(('a','b','c')): print i,j 0 a1 b2 c ...

  4. gvim窗口根据gnome-terminal位置定位

    gvim启动位置固定的话容易挡到东西,所以写了一段vimscript根据gnome-terminal的位置启动gvim,这样被遮住的概率就一些了. fun! g:get_xterm_pos ()&qu ...

  5. Windows漏洞利用与防护(2015.8)

    Windows平台下的漏洞利用与防护 0x00 概述 在过去的二十几年,Windows作为网络安全的主战场之一,攻于防的较量从未停息过.内存破坏漏洞作为研究的重点之一,经历了很多的发展也沉淀了前辈们许 ...

  6. 用户输入密码隐藏之getpass的使用

    有的时候,比如商城登录的时候,我希望输入的时候我的密码不为明文,如何实现呢? 这里就需要利用getpass模块中的getpass方法.注意,需要在linux上或者windows下运行,在pycharm ...

  7. Mac下MySQL的安装与配置

    之前一直用的是阿里云的服务器,在服务器上装了一个MySQL,但是今天发现到期了,而且续费时发现之前的大学生优惠不能用了,可是明明到6月份,大学生才毕业啊,shit!!!所以没办法只能在自己电脑上装一个 ...

  8. Android Studio环境下代码混淆+签名打包

    Android Studio环境下代码混淆+签名打包 作者 Mr_冯先生 关注 2016.08.21 01:10 字数 1040 阅读 734评论 5喜欢 34 注:本文使用的Android Stud ...

  9. Nginx+Apache实现反向代理

    一 反向代理 1.1 反向代理是什么 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器, 并将从服务器上得到的结果返回给 ...

  10. Activity生命周期方法调用finish后的不同表现

    今天宿舍一个哥们出去面试遇到了这个面试题:"在activity oncreate()调用finish()"生命周期是怎么样的? 我赶紧写了些demo,发现确实很有趣: packag ...