1. 前言

最近在学习Android系统开发,在开发过程中可能要到将三方apk集成到系统中的需求。目前我了解的方法有两种。

  1. 一种是在系统编译完毕之后,再将三方apk文件放置到系统目录之下。参考如何将apk文件更新到系统中vendor文件夹下。
  2. 还有一种是在Android系统编译时顺带着将三方apk文件打包到系统中。

2. 系统编译时

  1. 首先在Android系统目录 XXX\packages\apps 之下新建一个目录。例如 APP_NAME (APP_NAME可以换成自己集成的第三方apk的文件名)。然后在该目录下放置需要集成的 APP_NAME.apk 文件和 Android.mk 文件。目录结构如下所示:

    APP_NAME:APP_NAME.apkAndroid.mk
    复制代码
  2. 编写 Android.mk 文件。

    LOCAL_PATH:= $(call my-dir)
    include $(CLEAR_VARS)
    LOCAL_MODULE := APP_NAME
    LOCAL_MODULE_TAGS := optional
    LOCAL_SRC_FILES := APP_NAME.apk
    LOCAL_MODULE_CLASS := APPS
    LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
    LOCAL_CERTIFICATE := platform
    include $(BUILD_PREBUILT)复制代码
  3. 验证是否能够编译到系统中。当然每次都编译系统可能需要花很多时间。我们可以选择单个模块编译。

    xxx$ . build/envsetup.sh
    xxx$ lunch [你的Project_Name]
    xxx$ cd packages/apps/APP_NAME/
    xxx/packages/apps/APP_NAME$ mm
    复制代码

    当显示为 #### build completed successfully (xx:xx (mm:ss)) #### 则说明配置没有问题。可以重新编译系统测试最终情况。

文/谢康

转载于:https://juejin.im/post/5ce64c01e51d454d1d628488

Android系统编译时集成三方APK相关推荐

  1. android编译 预装apk,Android系统使用Shell脚本预装apk

    客户需求:需要在Android系统预安装一个或者若干个apk,客户可以选择自行卸载并且卸载后系统再次启动并不会再次自动安装. 考虑到需要批量安装应用,我这里考虑到使用灵活的shell脚本.shell脚 ...

  2. Android系统编译小总结

    Android系统编译 简介 搭建编译环境 系统编译命令 常见小知识点 Android编译版本 Android.mk文件 编译系统中的变量和宏 native layer 编译碰到的问题 安装lib32 ...

  3. 全志A40i开发板Android系统编译

    Android系统编译 A40i &T3 板卡用户可以通过飞凌嵌入式提供的网盘链接获取OKA40i-C开发板软件和硬件的文档及源码.软件和硬件的文档及源码下载方法不清楚的可联系飞凌嵌入式客服索 ...

  4. Android系统编译优化:使用Ninja加快编译

    背景 环境 关键编译阶段和耗时分析 阶段一:Soong bootstrap 阶段二:Kati遍历.mk搜集与ninja生成 阶段三:Ninja编译 编译优化 对比汇总 背景 Android系统模块代码 ...

  5. Android系统编译之Communication error with Jack server (35), try ‘jack-diagnose‘ or see Jack server log

    jack server failed 场景 个人分析 网上分析 分析1 分析2 原因1:权限问题 原因2:端口占用 原因3:删除 TLSv1, TLSv1.1 测试结论 解决方案 说明 相关链接 场景 ...

  6. android自动化持续集成,Android系统的持续集成自动化测试框架的研究与实践

    摘要: 近几年,Android系统占据着智能移动设备操作系统领域中极大的市场份额.随着Android市场中软件数量的不断攀升,移动用户对Android应用的质量要求也越来越高.如何保证Android软 ...

  7. Android系统编译aosp

    Android系统编译 公号文字版本:https://mp.weixin.qq.com/s/y6ReUNd3EDUctNVO_x3ZwQ 博客文字版本:http://liuwangshu.cn/bat ...

  8. Android系统编译

    Android系统编译 先执行环境初始化: source build/envsetup.sh && lunch aosp-eng 再执行make 模块名,模块根据需求自选,例如: ma ...

  9. android项目编译时提示找不到*.apk(could not find the *.apk)

    eclipse编译时找不到*.apk这个问题,折磨了我很久,google很多遍,都没有适合我的方法. 搜到的结果大体有以下解决方案: 1.修改windows的locaiton 2.project属性的 ...

最新文章

  1. PowershellTFS_Part 1
  2. 兴趣记忆法(1)顺口溜记忆
  3. 备忘录 - FL2440 开发板操作要点及注意事项
  4. 柴树杉:面向数据科学领域的新语言,Go+蓄势待发
  5. Axios 作弊表(Cheat Sheet)
  6. SQL SERVER最大用户连接数
  7. 前端学习(2174):打包文件的分析
  8. leetcode1045. 买下所有产品的客户(SQL)
  9. navicat导入成功但是没有数据_数据库能建立成功,但是还报错,应该怎么处理...
  10. python中heading_python基础===trheading 模块
  11. 交换机的VLAN技术
  12. 观看Tudou视频更流畅
  13. 动态添加element标签,数据操作
  14. Grafana Tempo简介
  15. android 股票行情走势图K线控件 KLineView
  16. java读取并导出多类型数据csv文件
  17. [数理工程学] 梅花易数-[宋]邵雍 宋抄本影印
  18. 按月显示的万年历(含农历)网页代码
  19. ZXing 相册中识别二维码和条形码(直接引用就可以了)
  20. Kettle5.2 couldn't convert string [...] to a date using format [yyyy/MM/dd HH:mm:ss.SSS]

热门文章

  1. 美国任命首位首席信息安全官
  2. 光荣与梦想 | XMove动作捕捉系统(一)
  3. 第九章 硬件抽象层:HAL 心得笔记
  4. 001.android初级篇之ToolBar
  5. UITableView取消选中颜色、常用操作
  6. 【VMware中搭建iOS开发环境的引导工具】
  7. SystemCenter2012SP1实践(6)SCVMM管理XenServer
  8. 中英字体不同导致的下划线不对齐问题
  9. Silverlight获取WebHost配置信息--WebClient和XmlSerializer模拟
  10. 利用Javadoc工具生成api文档