Android模块化编译

Android 常用编译模块和输出产物路径 介绍framework-res.apk、telephony-commom.jar、spn-conf.xml等文件编译产物和代码的路径的对应关系。 阅读详情

1、我们平常在编译Android源码,有时并不需要编译整个Android源码,而只需要编译模个模块,这是可以使用mmm工具来编译。

其使用方法是:mmm <dir>,如编译frameworks下的所有文件,则可以这样子:

. build/envsetup.sh && choosecombo 1 1 2 3 &&
export ANDROID_JAVA_HOME=$JAVA_HOME && mmm framwork

编译出来的APK,但APK并不包含在system文件夹中,我们可以使用make snod 打包system文件夹,产生新的system.img。

 

$. build/envsetup.sh && help

Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment:
- croot:   Changes directory to the top of the tree.
- m:       Makes from the top of the tree.
- mm:      Builds all of the modules in the current directory.
- mmm:     Builds all of the modules in the supplied directories.
- cgrep:   Greps on all local C/C++ files.
- jgrep:   Greps on all local Java files.
- resgrep: Greps on all local res/*.xml files.
- godir:   Go to the directory containing a file.

Look at the source to view more functions. The complete list is:
add_lunch_combo cgrep check_product check_variant choosecombo chooseproduct choosetype choosevariant croot findmakefile gdbclient get_abs_build_var getbugreports get_build_var getprebuilt gettop godir help isviewserverstarted jgrep lunch m mm mmm pid printconfig print_lunch_menu resgrep runhat runtest runtest_py setpaths set_sequence_number set_stuff_for_environment settitle smoketest startviewserver stopviewserver tapas tracedmdump

 

 

2、关于img文件说明

编译android源码之后,在out/target/product/generic一些文件: ramdisk.img、system.img、userdata.img、 system、 data、root
其中, system.img是由 system打包压缩得到的, userdata.img是由 data打包压缩得到的。
ramdisk.img是模拟器的文件系统,把ramdisk.img解压出来可知道,ramdisk.img里的文件跟root文件夹的文件基本一样。
模拟器装载ramdisk.img并解压到内存,接着分别把system.img和userdata.img挂载到 ramdisk下的system和data目录。我们编译出来的应用程序就是放在system/app下的。用户安装的程序则是放在data/app下。

 

 

Android学习之模块化过程多渠道编译详解 本文和大家分享的主要是android开发中,模块化多渠道编译相关内容,一起来看看吧,希望对大家有所帮助。   有赞微商城APP小组在搞模块化过程中需要把POS机相关的业务全部抽离出来,但是POS机的适配代码会散落在多个业务module 中,这才让我接触到了模块化过程中真正的多渠道编译。   闲话少说,开始步入正题,把解决方案分享给大家,希望小伙伴能少走弯路。   那么什么时候小伙 阅读详情

相关推荐

展锐平台Android系统镜像模块化编译与烧录实战指南

本文详细介绍了展锐平台Android系统镜像的模块化编译与烧录实战指南,涵盖u-boot、kernel、system、vendor和socko等核心模块的编译技巧与烧录方法。通过具体命令示例和实用调试技巧,帮助开发者高效完成Android系统开发与调试,特别适合在展锐平台上进行嵌入式开发的工程师参考。

weixin_29189377的博客 365

Android 源码编译技巧--模块编译

源码全编译 基于AN 8.0 ,全编译一般步骤为 source jdk_env.sh source build/envsetup.sh lunch //选择对应的device或product make -j8 //数字越大越好,但取决于编译服务器性能 模块编译 模块编译的好处是不用每次都完整的烧录 rom 到板子上,节省时间。 将模块编译生成的文件直接 adb push 或者串口拷贝到板子上就能看到修改效果,方便调试。 是否可以模块编译,主要看该模块根目录下是否有 Android.mk

weixin_44021334的博客 5770

从零构建Android13开发环境:源码目录结构与模块化编译实战

本文详细指导如何从零构建Android13开发环境,深入解析系统源码目录结构,重点介绍frameworks和packages核心模块,并提供模块化编译实战技巧。涵盖环境配置、源码解析、编译优化及调试方法,帮助开发者高效进行Android系统级开发。

weixin_29309785的博客 399

Android UpdateEngine 模块分析(一)模块编译介绍

本章节分析 UpdateEngine 模块中编译文件 Android.mk,从整体去分析 UpdateEngine 所生成的模块,依赖以及功能。

Yang_Mao_Shan的博客 4298

保姆级教程:用Rockchip RK3588的build.sh脚本,5分钟搞定Android SDK模块化编译

本文详细介绍了如何使用Rockchip RK3588的build.sh脚本实现Android SDK模块化编译,大幅提升开发效率。通过解析关键编译参数、提供实战技巧和常见问题解决方案,帮助开发者快速掌握RK3588平台的高效编译方法,将传统几小时的编译时间缩短至5分钟。

weixin_30765577的博客 223

rk3399 Android模块化编译及调试

rk3399 Android模块化编译及调试 文章目录rk3399 Android模块化编译及调试导入环境mm编译手动push 内核版本 Linux4.4 平台 rk3399 作者 nineyole 我们在调试Android的时候会经常需要对某些模块进行模块化编译,下面讲讲其中的一个方法是如何实现的。 导入环境 source build/envsetup.sh xxx@ubuntu-server:~ rk3399-android7.1/ rk3399-android7.1$ s

学无止境 786

Android内核模块编译

Android内核模块编译

汽车以太网和SOA 4662

Android单个模块编译

NULL 博文链接:https://george-ghc.iteye.com/blog/1038372

Android 编译模块 (小记)

比如我想编译system/core/fastboot,那么我就去找这个路径下的Android.bp/ Android.mk。编译指定模块,参数为模块的相对路径。只能在第一次编译后使用。只能在第一次编译后使用。但是这种方式不适合上面那种Android.bp 中 只有name的模块。Android.bp 中找每个模块的那么就行。然后直接make这个name。

安卓 高通 bsp ,同行欢迎交流 1931

【AI助力科研】不看一篇文献,手把手教你用chatGPT写文献综述!

这篇文章以【AI助力科研】为题,介绍了如何利用ChatGPT编写文献综述的方法。作者通过详细的指导,展示了不需要阅读大量文献,只需依靠ChatGPT模型即可完成文献综述的过程。该方法旨在提高科研工作者的效率,减少阅读负担,并且能够生成具有逻辑性和准确性的文献综述。

研究方向//图像视频处理/信号算法/红外无损检测/数值仿真/机器学习/优化算法/python/matlab 2万+

【车辆动力学】专栏目录汇总

车辆动力学知识目录汇总

CrazyRabbit的博客 1713

安卓android编译,安卓Android模块化编译的方法详解介绍

1、我们平常在编译Android源码,有时并不需要编译整个Android源码,而只需要编译模个模块,这是可以使用mmm工具来编译。其使用方法是:mmm ,如编译frameworks下的所有文件,则可以这样子:. build/envsetup.sh && choosecombo 1 1 2 3 &&export ANDROID_JAVA_HOME=$JAVA_HOME...

weixin_29120409的博客 632

Windows批处理脚本实战:用Ping命令打造简易网络监控工具(附完整代码)

本文介绍如何利用Windows批处理脚本和Ping命令,快速构建一个轻量级、自动化的网络监控工具。该方案无需额外安装软件,通过周期性探测目标IP连通性,并将结果(成功、失败及延迟)自动记录到带时间戳的日志文件中,适合中小团队或临时监控需求,实现低成本、高效率的网络状态监控。

5f4d3s2a1q的博客 494

android 模块化编译,Android加速编译终极方案---模块化

作为一个文艺的程序猿,配图当然是要用自己拍的了,哈哈啊哈哈哈哈“所谓Android开发,五年开发三年编译。”——鲁迅(鲁迅:mmp...)本文主要讨论关于Android代码模块化后,对于编译速度提升。其中涉及详细的测试过程和数据分析,以及遇到问题的解决。本文为翻译整理文章,感叹于作者的探索精神。Nikita Kozlov原文链接预备知识点App Module每创建一个Android工程都会包含至...

weixin_34329874的博客 732

Open3D 计算点云的倒角距离(Chamfer Distance)【2025最新版】

;Chamfer Distance距离可以计算生成点云数据与标签点云数据之间的平均最短点距离。Open3D可以直接用来计算点云的Chamfer Distance距离。博客长期更新,本文最近一次更新时间为:2025年2月18日。

点云侠的博客 3254

<PLC><socket><汇川>汇川PLC使用socket与其他控制器(如上位机)通讯模板程序示例

以上介绍了汇川PLC通用socket通讯的示例,事实上,汇川的官方手册也有使用示例,可以直接仿照使用,也可以加以修改。

用沸腾的热血,支付我们的人生吧! 3247

Android源码模块化编译与分区刷机实战

本文详细介绍了Android源码模块化编译与分区刷机实战方法。通过分析boot、system、vendor等核心分区的单独编译命令,结合fastboot工具的分区刷机步骤,帮助开发者大幅提升系统开发与调试效率,避免完整编译的漫长等待。

j2k3l4的博客 632

【ESP 保姆级教程】玩转emqx数据集成篇④ ——数据桥接之HTTP服务

主要是学习数据桥接功能以及构建自己的http服务器,这是一个非常有用的功能。包括各种传感器上报基本上都需要数据桥接功能支持,所以还是希望认真学习这一块开发,然后结合数据库存储等等知识点进行进一步学习。

单片机菜鸟哥的博客 1306

在Android系统中模块化编译驱动程序

1、向android系统之中添加一个驱动程序,模块化加载(insmod xxx.ko) 首先再kernel/drivers目录下添加自己的目录 hello。 在hello目录写写自己的驱动程序和Makefile文件。编写Makefile时,需要注意:obj-y:把由foo.c 或者 foo.s 文件编译得到foo.o 并连接进内核.obj-m: 则表示该文件作为模块编译。 修改h

跳舞的蘑菇的博客 2590

Xilinx FPGA平台GTX简易使用教程(一)GTX基础知识

理解GTX的必备姿势,学起来!

数字IC/FPGA杂货铺,找一找,或许有你想要的~ 2万+

uniapp(全端兼容) - 最新详细实现双色球开奖走势图功能组件,uni-app红球走势图/蓝球走势图,解决双色球 “蓝球连线“ 问题,双色球效果及用线连接每个号码详细教程(同样适用于彩票开奖走势图

uni-app,双色球,安卓app,苹果app,微信小程序,移动端,H5网页,手机网站,微信小程序、支付宝小程序,手机app端,nvue,红球走势,蓝球走势,连线,uniapp(vue):js实现双色球开奖走势图带连线,vue2,vue3,uniApp双色球组件插件,uniapp如何实现双色球走势图和连线,彩票走势图,前端 Vue实现彩票走势图,详细示例,走势图,彩票项目,绘制股票走势图,前端 JS实现彩票开奖走势图 连线,Uniapp有没有双色球的页面代码,红球蓝球的走势图如何做,双色球红球和值尾走势图,

✅ 精选推荐文章 3344

我所理解的Android模块化(三)——模块可插拔单独编译运行

前面已经写了两篇Android模块的博客,主要讲到了模块化的跳转路由,模块间通信和模块间服务调用。 模块化的好处之一就是单一模块可以独立的开发编译运行安装到用户的手机上,这样就方便了对某一模块的单独开发调试,单一模块生成的apk体积也小,编译时间也快,开发效率会高很多。

做更好的自己 5879

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Android学习第二篇;模块化编译

在学习android源码的过程中,肯定需要修改源码并查看效果 如果每次都make则太费时

Xunxianren007的博客 464

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

android控制哪些模块编译,Android 模块化过程中的多渠道编译

有赞微商城APP小组在搞模块化过程中需要把POS机相关的业务全部抽离出来,但是POS机的适配代码会散落在多个业务module 中,这才让我接触到了模块化过程中真正的多渠道编译。闲话少说,开始步入正题,把解决方案分享给大家,希望小伙伴能少走弯路。那么什么时候小伙伴会遇到我所遇到的问题呢?你的项目在模块化,业务代码抽到了独立的library中你的library代码中需要通过BuildConfig.FL...

weixin_39575937的博客 237

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Android的模块化编译

1、我们平常在编译Android源码,有时并不需要编译整个Android源码,而只需要编译模个模块,这是可以使用mmm工具来编译。 其使用方法是:mmm ,如编译frameworks下的所有文件,则可以这样子: . build/envsetup.sh && choosecombo 1 1 2 3 && export ANDROID_JAVA_HOME=$JAVA_HOME && mm...

Android星空 248

Android模块化与组件化--多模块区分编译

模块化与组件化–多模块区分编译 示例地址:https://github.com/JackyAndroid/Android-Architecture-Fairy/tree/master/multi-variants-library Android-Architecture-Fairy开源项目重点分析主流技术与架构设计,欢迎star 有时我们一个项目中存在多个产品形态,且不同产品需要不同的编译

墨镜猫 3279
上一篇: Android Makefile的常用写法总结
下一篇: Android系统移植准备
sanlinux
博客等级 码龄17年 92粉丝 158原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值