单编译framework相关模块
android开发人员大概都是从上层做起,捣鼓捣鼓收音机,记事本,主界面什么的。开发工具eclipse+ADT就可以了,有的模块会需要导入一些依赖包。
慢慢的,这些表面工作已经成为一种体力活,开始觉得厌倦,这时多半也混成老油条了。或许是组织信任你,也可能是你自己想要change,所以你表示
要搞搞更具技术含量的东西,理所当然的framework开始以各种姿态出现在你的生活中,并以它独有的方式影响着你的心情。
前段日子,作为一个极具二b青年气质的程序员怀着忐忑的心情开始了我的framework相关工作。这里略作小结。
组织交给我的任务是根据UI提供的设计方案实现一个新锁屏(技术评审的时候我很猥琐的投了看起来最容易实现的一种方案)。
做的时候,思路很快锊顺了,但做起来异常费劲,每次做点修改,或者加点调试信息,都是全编译生成system.img,一趟下来半小时没了,一天也调试不了几次。
编译的时候看看书,和同事聊聊天什么的,时间不够,加班来凑,顺便混个加班餐,锁屏硬就是在这种2b节奏下弄出来的。
组织验完锁屏表示小伙子做得还可以,接下来你把状态栏和setting也做了吧。屌丝的虚荣心在那瞬间得到了极大地满足,立马表示愿为组织肝脑涂地,在所不惜!
一天中午我正在以2b节奏被状态栏以各种姿势(bug)调戏着,一边盯着屏幕全编译,一边思绪万千。突然一高富帅划过身边,淡淡的扔下一句:可以单编译的。
高富帅回到座位随手发给我一个网址,当时我的世界观发生了改变。
1.初始化编译环境
. build/envsetup.sh
2.选择编译策略
choosecombo 1 2 9 2& chooseproduct XXX
3.这里分不同情况讨论
比如锁屏就分了三个地方:
a,逻辑是Frameworks/base/policy/src/com/android/internal/policy/impl/目录下这里的文件做了相关改动后需要
cd Frameworks/base/policy
mm
得到android.policy.jar文件备用。
b,视图是在 Framework/base/core/java/com/android/internal/widget/路径下,这里的文件做了修改则需要
cd Frameworks/base/
mm
得到framework.jar文件备用。
c,资源文件在Framework/base/core/res/res/发生了变化。
cd Frameworks/base/core/res/
touch find
mm
得到framework-res.apk文件备用。
4.弄到手机里面
adb remount
adb push XXX system/framework
adb push 。。。。。。
adb reboot
Tips:
每次但编译最好清掉out/obj下的对应中间文件。尤其是有资源文件更新时。
其他framework下的功能模块以此类似,比如状态栏就是在framework/base/package/systemUI下mm。
自从会单编译后。那里有错,编那里,组织再也不用担心我的进度了。
对不起观众,渣排版,泪流满面。
转载于:https://www.cnblogs.com/aaa2832/archive/2012/06/26/2594036.html
单编译framework相关模块相关推荐
- 5. [mmc subsystem] mmc core(第五章)——card相关模块(mmc type card)
零.说明(重要,需要先搞清楚概念有助于后面的理解) 1.mmc core card相关模块为对应card实现相应的操作,包括初始化操作.以及对应的总线操作集合.负责和对应card协议层相关的东西. 这 ...
- 编译kernel外部模块
编译kernel外部模块 一.说明 二.编译外部模块 条件 语法 三.编译脚本 编写脚本 脚本的几种实现方式 四.编译包含头文件 kernel头文件放置规则 不同情况,头文件的使用 五.编译安装目录( ...
- EF-Entity Framework 相关技术点收集贴
不定期.偶尔.添加更新 在网络上看到或者自己开发过程中碰到的EF-Entity Framework相关技术点 本文地址:http://www.cnblogs.com/vnii/archive/2012 ...
- 【CLR的执行模型:将源代码编译成托管模块】
CLR:由多种不同编程语言使用的运行库 托管模块:中间语言和元数据 非托管语言:C/C++,不过此为特殊,可以写成托管代码 托管语言:C# 托管模块 1,PE32/PE32+头:PE32运行在win3 ...
- nginx php动态编译加载模块.
#Nginx动态编译加载模块步骤 #查看目前Nginx版本及编译模块 #[root@centos7 ~]# /opt/app/lnmp/nginx-1.12.0/sbin/nginx -V #ngin ...
- Android AOSP 单独编译某一模块
由于AOSP 项目太大,我只修改了一个模块,比如设置. 那么只需要单独编译设置这个模块就可以了. 首先执行Source: source build/envsetup.sh 执行之后,就会有一些额外的命 ...
- Zend Framework 多模块配置 (二)
续 Zend Framework 多模块配置 (一) 4)启动bootstrap文件: 全局bootstrap文件 (repos/application/botstrap.php) class B ...
- python列表内置函数_Python-列表总结(操作符、方法、内置函数、相关模块)
目录 上篇文章思考题 简介 创建与赋值 操作符 访问与更新(序列操作符切片) 判断元素是否存在(成员关系操作in,not in) 拼接列表(连接操作符+) 重复(重复操作符*) 删除 方法 添加 删除 ...
- pythontime模块介绍_Python相关模块介绍
原标题:Python相关模块介绍 一.Python引用扩展模块 • import [as ]:将模块中的函数等名称导入当前程序,"命名空间"namespace,引用方法--. • ...
最新文章
- StatQuest学习笔记23——RNA-seq简介
- 三年前端,面试思考(二)
- linux ps 显示不了中文,enscript转txt为ps文件时中文变成乱码
- 剑指offer python版 最长不含重复字符的子字符
- hosts文件 端口_在Linux系统中使用Vim读写远程文件
- Jordan Lecture Note-9: Principal Components Analysis (PCA).
- Farthest points Sampling on 3D meshes with mesh kept based on diffusion distance
- android 播放器 直播,通过android中的mediaplayer直播
- linux如何秀爱swap大小,老毛桃PE启动U盘集合CDlinux,BT5可保存设置,wifislax,sliatz中文定制版的方法[存档......
- 2021如何运行带flash的html,2021年Flash被禁用后继续使用的方法
- css设置table阴影浮动效果
- 主板在计算机系统中的应用,浅谈主板在计算机硬件系统中的重要性.doc
- Blog说明--WaaSinn的专业窝
- 北理珠计算机与科学就业去向,2019届我国大学毕业生就业情况:计算机类专业领跑薪酬榜...
- 安装搭建Reviewboard 实现pre-commit-review
- Visual Studio(VS) 2019版本下载官方地址
- Attributes as Operators
- 封号、扣钱:谁来保证专车司机的利益?
- 公司发给你一个gitLab账号怎么配置项目!
- 在solaris上自动启动oracle
热门文章
- SVN 服务器的安装和配置(Gentoo)
- android 小写字母转大写,android将输入到输入框的小写字母自动转换为大写
- python findcontours_基于Python的opencv学习练习(十二) findContours()轮廓与绘制drawContours()...
- 用c语言输入首字母判断星期几,输入字母,判断星期几,求大神指点
- 防注入php 留言板代码,简单的 php 防注入代码
- 选择分集matlab程序,瑞利衰落信道下采用MRC分集误码性能Matlab程序
- Redis内存回收和持久化策略
- 何为MQ以及为何要用MQ
- 第十一篇:稳定性之面向失败设计【过载保护】
- mysql 子查询代替_MySQL查询优化:用子查询代替非主键连接查询