framework编译应用代码

news2024/12/26 10:38:07

代码编译
APP或Service代码单编调试
 1、在aosp文件目录下在将环境变量加载到内存中,在终端中输入下面命令

source build/envsetup.sh
2、选择平台编译选项

lunch
3、输入后会出现一个选择列表,然后输入你想要的项目的序号即可。如下所示我这里选择的7,也可以直接lunch 7或者lunch test_high-userdebug

You're building on Linux
Lunch menu... pick a combo:
1. aosp_arm-eng
2. aosp_arm64-eng
3. aosp_mips-eng
4. aosp_mips64-eng
5. aosp_x86-eng
6. aosp_x86_64-eng
7. test_high-userdebug
8. test_high_12g-userdebug
9. test_high-userdebug
10. test_low-userdebug
11. test1_high-userdebug
12. test1_low-userdebug
13. aosp_arm-userdebug
Which would you like? [aosp_arm-eng] 7
4、然后就是编译代码,编译代码方式有两种

第一种:

make命令编译

在源码项目中找到你想要编译的模块下的Android.mk文件找到LOCAL_PACKAGE_NAME或者

LOCAL_MODULE字段

 

然后把对应的参数值加在make命令后执行。例:

make 参数值
第二种:

可以使用mm命令和mmm命令

mm 是编译当前文件夹下的mk文件

mmm /xxx/xx/x 是编译/xxx/xx/x指定目录下的mk文件

第一种和第二种的区别在于第一种make编译会把有关联的模块也都编译了,第二种只是编译当前模块。

建议尽量用第一种,如果你的模块调用了其他模块在其他模块也有改动时编译出的文件会有问题。

5、编译成功后会给你一个文件输出的路径。将路径下的APK push到车机对应的目录中,push成功后需要同步重启下。

adb root
adb remount
adb push out/target/product/xxx/system/app/xx/xx.apk /system/app/xx/xx.apk
adb shell sync
adb reboot
 lib模块代码单编调试
lib代码编译和apk编译前面步骤是一样的,只是输出的产物不同。这种情况不能和apk一样只是单独把编译出来的文件做替换。还要将frameworks下的相关的文件一起替换。例如:

adb push out/target/product/xxx/system/framework/xx.jar /system/framework/
 
adb push out/target/product/xxx/system/framework/boot-xx.vdex /system/framework/
 
adb push out/target/product/xxx/system/framework/arm/boot-xx.art /system/framework/arm/
 
adb push out/target/product/xxx/system/framework/arm/boot-xx.art.rel /system/framework/arm/
 
adb push out/target/product/xxx/system/framework/arm/boot-xx.oat /system/framework/arm/
 
adb push out/target/product/xxx/system/framework/arm64/boot-xx.art /system/framework/arm64/
 
adb push out/target/product/xxx/system/framework/arm64/boot-xx.art.rel /system/framework/arm64/
 
adb push out/target/product/xxx/system/framework/arm64/boot-xx.oat /system/framework/arm64/
xx是你编译模块的名字
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/650609.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【OpenMMLab AI实战营二期笔记】第十天 底层视觉与MMEditing

1.图像超分辨率 1.1 什么是图像超分辨率? 根据从低分辨率图像重构高分辨率图像 1.2 目标: 提高图像的分辨率高分图像符合低分图像的内容恢复图像的细节、产生真实的内容 1.3 应用: 经典游戏高清重制动画高清重制照片修复节约传输高清图…

当你拥有什么样的高性能计算技术水平,你才能成为一名高性能计算工程师? ...

在当今科技快速发展的时代,高性能计算工程师成为了推动科学研究、工程仿真和大数据处理的关键人才。尤其是我国大力发展科研基建,打造科研技术底座,这就更加需要高性能计算工程师通过自身的技术来加速科研建设和研发的进度和速度。 我们调研了…

Spark大数据处理学习笔记(3.8.1) Spark RDD典型案例-利用RDD计算总分与平均分

该文章主要为完成实训任务,详细实现过程及结果见【http://t.csdn.cn/Twpwe】 文章目录 1. 任务目标2. 实现思路3. 准备工作3.1 启动HDFS服务3.2 启动Spark服务3.3 在本地创建成绩文件3.4 将成绩文件上传到HDFS 4. 完成任务4.1 在Spark Shell里完成任务4.1.1 读取成绩…

虚拟机使用

文章目录 VMWare安装Warning 系统安装MacOS解锁工具Unlocker Warning VMWare配置系统启动安装VMware tools联网 VMWare安装 Warning 安装完VMWare后要在BIOS中开启intel VT(虚拟化),否则安装过程中会出错,提示“Intel VT-x处于禁…

写在2023年,回看10年前,很幸运进了软件测试这行~

首先介绍一下我自己,从事软件测试行业到现在是10年时间,毕业之后一直从事的软件测试行业。很幸运在毕业时赶上互联网这波浪潮,然后就一直在互联网公司工作,虽然那时候的软件测试技术发展还相对比较混乱,但自己因为公司…

CAN 报文字节排列顺序(Intel、Motorola_LSB、Motorola_MSB)

学习自记: 在定义CAN通信矩阵或制作dbc时,我们需要知道报文的字节排列顺序。字节的排列顺序有2种,一种是Intel的排列顺序,另一种是Motorola的排列顺序,就跟大小端字节排序是一样的。下面笔者将简单介绍这2种字节排序的…

在conda环境中安装tensorflow和cuda

​ 不同版本的tensorflow官方提供的编译好的whl文件只对应一个cuda版本,这让需要tensorflow的不同版本时很麻烦。 我选择的方式是在conda中新建一个环境,在环境中安装需要的tensorflow和cudatoolkit。 这里假设已经安装好anaconda。 确定需要的tensorflo…

服了呀,现在的00后,真的是卷死了,辞职信已经写好准备提交了·····

都说00后躺平了,但是有一说一,该卷的还是卷。这不,四月份春招我们公司来了个00后,工作没两年,跳槽到我们公司起薪22K,都快接近我了。 后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了…

数智赋能与低代码:是医药行业的创新引擎还是心魔歧途

医药行业在当下科技水平的推动下实现了突破性的进展,提高了疾病的治疗效果、加速了新药的开发速度,并为病患提供了更便捷、个性化的医疗服务。当前科技水平下的医药行业正在经历快速的发展和创新。AI 在医药研发、诊断和治疗方面扮演着重要角色。机器学习…

软件测试中的可用性、可维护性、可靠性有什么区别?

我们生活在一个用户依赖于对服务的一致访问的可靠性时代。在相互竞争的服务之间进行选择时,对用户来说,没有比可靠性更重要的特性了。但是可靠性是什么意思呢? 为了回答这个问题,我们将根据可靠性工程中的其他度量来分解可靠性&a…

接口自动化测试的一种方案

前言 去年,我们进行了项目的拆分,拆分后的各个子系统也都逐步的改成了通过接口进行数据的交换,接口测试也被提上日程。经过一段时间的探索,接口自动化测试方案越来越完善,今天给大家做个详细的讲解。 方案 目前我们…

5分钟快速学会App自动化测试xpath定位【快点收藏吧】

今天我们先来和大家说一下appium,首先教大家如何定位xpath,五分钟即可学会: 例: 现在我想定位下面这个登录按钮:​ ​xpath该怎么写呢? 先不管三七二十几,先写//,然后找你要定位元…

中国信通院携手合合信息开启《文档图像篡改检测标准》制定工作

文档图像是信息的重要载体,却经常被不法分子利用软件、算法进行篡改。这些虚假材料往往被用于散播谣言、经济诈骗、编造虚假新闻,给个人、社会造成了恶劣的影响。AIGC全球爆火后,人们对“生成式造假”风险的攀升倍感忧虑,图像内容…

获得忠实铁粉?你也可以

获得忠实铁粉?你也可以 何为铁粉铁粉与普通粉丝区别铁粉规则如何获得铁粉 何为铁粉 在CSDN中,铁粉通常指对某个知名开发者、博主或组织非常支持、崇拜、追随的粉丝。他们可能会关注该开发者或博主的所有文章、博客、视频等,积极参与讨论并分…

如何在国产OpenEuler操作系统上安装ONLYOFFICE桌面编辑器V7.4版本

如何在国产OpenEuler操作系统上安装ONLYOFFICE桌面编辑器V7.4版本 书接上文: 手把手教你如何解开安装UKUI的黑屏故障 不吵嘴仗,华为的OpenEuler开放欧拉操作系统也是一款不可多得的非常好的Linux发行版,只是, 初装的桌面环境&a…

选对预测性维护工具,让设备运行更稳定

随着技术的不断进步,预测性维护(Predictive Maintenance,简称PdM)在现代工业中扮演着至关重要的角色。选择适合自身需求的预测性维护工具是企业在实施PM策略时的重要决策。本文将探讨在选择预测性维护工具时需要考虑的关键因素和决…

LeetCode36 有效的数独

请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) …

不愧是字节出来的,太强了...

前段时间公司缺人,也面了许多测试,当然也没指望能来大牛,薪资提供在15K~20k左右,来面试的人有很多,但是平均水平真的让人很失望。 看了简历很多上面都是写有4/5年工作经验,但在面试中,我大为震…

AI智能时代的专有云|百度智能云ABC Stack亮相2023 NAVIGATE 领航者峰会

近日,百度智能云ABC Stack亮相由紫光集团和新华三集团主办的“2023 NAVIGATE 领航者峰会”互联网线上专题论坛。百度智能云私有云部副总经理史磊进行了主题为“百度智能云携手新华三共创互联网新时代”的演讲,分享了百度专有云ABC Stack智算版的技术优势…

Mac环境python + selenium 环境搭建

文章主要讲解Mac环境下如何搭建selenium环境。作者也是测试初学者,对selenium目前是一无所知的状态,希望从搭建环境开始对它逐步了解。 环境准备 本文采用的环境:• Python 3.7.3 PS: Mac环境会默认自带Python环境,但…