当前位置: 首页 > news >正文

Android系统编译时集成三方APK

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.apk
          Android.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

相关文章:

  • Sublime Text 快捷键(Windows)
  • 能冒泡的事件
  • BIT软件需求工程与UML建模课程第三周工作总结
  • T-Chat·活动预告 | 交流会:等保2.0新鲜发布,信息安全何去何从?
  • Selenium库详解
  • hdu4625 JZPTREE(斯特林数+dp)
  • 如何配置不同url打包-android实操篇
  • 洛谷 P2661 信息传递(并查集 最小环)
  • ubuntu 18.04下修改pip镜像源
  • RN命令的使用
  • 区块链浏览器导航
  • springcloud 系列教程三:RestTemplate实现服务的调用以及Ribbon负载均衡
  • 【CentOS 7笔记29】,源码安装#
  • Linux之blkid命令
  • 如何用zabbix 监控 tomcat
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • HTML5新特性总结
  • Invalidate和postInvalidate的区别
  • javascript数组去重/查找/插入/删除
  • js作用域和this的理解
  • python学习笔记 - ThreadLocal
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 聊一聊前端的监控
  • 前端面试题总结
  • 前端相关框架总和
  • 我是如何设计 Upload 上传组件的
  • 智能合约开发环境搭建及Hello World合约
  • 自制字幕遮挡器
  • linux 淘宝开源监控工具tsar
  • Linux权限管理(week1_day5)--技术流ken
  • 阿里云服务器如何修改远程端口?
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​决定德拉瓦州地区版图的关键历史事件
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • #pragma once与条件编译
  • #window11设置系统变量#
  • #微信小程序:微信小程序常见的配置传值
  • (1)虚拟机的安装与使用,linux系统安装
  • (ZT)出版业改革:该死的死,该生的生
  • (二刷)代码随想录第16天|104.二叉树的最大深度 559.n叉树的最大深度● 111.二叉树的最小深度● 222.完全二叉树的节点个数
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (理论篇)httpmoudle和httphandler一览
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (转)德国人的记事本
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .NET MVC之AOP
  • .NET Remoting学习笔记(三)信道
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .py文件应该怎样打开?
  • :“Failed to access IIS metabase”解决方法