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相关模块相关推荐

  1. 5. [mmc subsystem] mmc core(第五章)——card相关模块(mmc type card)

    零.说明(重要,需要先搞清楚概念有助于后面的理解) 1.mmc core card相关模块为对应card实现相应的操作,包括初始化操作.以及对应的总线操作集合.负责和对应card协议层相关的东西. 这 ...

  2. 编译kernel外部模块

    编译kernel外部模块 一.说明 二.编译外部模块 条件 语法 三.编译脚本 编写脚本 脚本的几种实现方式 四.编译包含头文件 kernel头文件放置规则 不同情况,头文件的使用 五.编译安装目录( ...

  3. EF-Entity Framework 相关技术点收集贴

    不定期.偶尔.添加更新 在网络上看到或者自己开发过程中碰到的EF-Entity Framework相关技术点 本文地址:http://www.cnblogs.com/vnii/archive/2012 ...

  4. 【CLR的执行模型:将源代码编译成托管模块】

    CLR:由多种不同编程语言使用的运行库 托管模块:中间语言和元数据 非托管语言:C/C++,不过此为特殊,可以写成托管代码 托管语言:C# 托管模块 1,PE32/PE32+头:PE32运行在win3 ...

  5. nginx php动态编译加载模块.

    #Nginx动态编译加载模块步骤 #查看目前Nginx版本及编译模块 #[root@centos7 ~]# /opt/app/lnmp/nginx-1.12.0/sbin/nginx -V #ngin ...

  6. Android AOSP 单独编译某一模块

    由于AOSP 项目太大,我只修改了一个模块,比如设置. 那么只需要单独编译设置这个模块就可以了. 首先执行Source: source build/envsetup.sh 执行之后,就会有一些额外的命 ...

  7. Zend Framework 多模块配置 (二)

     续 Zend Framework 多模块配置 (一) 4)启动bootstrap文件: 全局bootstrap文件 (repos/application/botstrap.php) class B ...

  8. python列表内置函数_Python-列表总结(操作符、方法、内置函数、相关模块)

    目录 上篇文章思考题 简介 创建与赋值 操作符 访问与更新(序列操作符切片) 判断元素是否存在(成员关系操作in,not in) 拼接列表(连接操作符+) 重复(重复操作符*) 删除 方法 添加 删除 ...

  9. pythontime模块介绍_Python相关模块介绍

    原标题:Python相关模块介绍 一.Python引用扩展模块 • import [as ]:将模块中的函数等名称导入当前程序,"命名空间"namespace,引用方法--. • ...

最新文章

  1. StatQuest学习笔记23——RNA-seq简介
  2. 三年前端,面试思考(二)
  3. linux ps 显示不了中文,enscript转txt为ps文件时中文变成乱码
  4. 剑指offer python版 最长不含重复字符的子字符
  5. hosts文件 端口_在Linux系统中使用Vim读写远程文件
  6. Jordan Lecture Note-9: Principal Components Analysis (PCA).
  7. Farthest points Sampling on 3D meshes with mesh kept based on diffusion distance
  8. android 播放器 直播,通过android中的mediaplayer直播
  9. linux如何秀爱swap大小,老毛桃PE启动U盘集合CDlinux,BT5可保存设置,wifislax,sliatz中文定制版的方法[存档......
  10. 2021如何运行带flash的html,2021年Flash被禁用后继续使用的方法
  11. css设置table阴影浮动效果
  12. 主板在计算机系统中的应用,浅谈主板在计算机硬件系统中的重要性.doc
  13. Blog说明--WaaSinn的专业窝
  14. 北理珠计算机与科学就业去向,2019届我国大学毕业生就业情况:计算机类专业领跑薪酬榜...
  15. 安装搭建Reviewboard 实现pre-commit-review
  16. Visual Studio(VS) 2019版本下载官方地址
  17. Attributes as Operators
  18. 封号、扣钱:谁来保证专车司机的利益?
  19. 公司发给你一个gitLab账号怎么配置项目!
  20. 在solaris上自动启动oracle

热门文章

  1. SVN 服务器的安装和配置(Gentoo)
  2. android 小写字母转大写,android将输入到输入框的小写字母自动转换为大写
  3. python findcontours_基于Python的opencv学习练习(十二) findContours()轮廓与绘制drawContours()...
  4. 用c语言输入首字母判断星期几,输入字母,判断星期几,求大神指点
  5. 防注入php 留言板代码,简单的 php 防注入代码
  6. 选择分集matlab程序,瑞利衰落信道下采用MRC分集误码性能Matlab程序
  7. Redis内存回收和持久化策略
  8. 何为MQ以及为何要用MQ
  9. 第十一篇:稳定性之面向失败设计【过载保护】
  10. mysql 子查询代替_MySQL查询优化:用子查询代替非主键连接查询