• 单编译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。

    自从会单编译后。那里有错,编那里,组织再也不用担心我的进度了。

     对不起观众,渣排版,泪流满面。 


  • 相关阅读:
    C# 排序技术研究与对比
    基于.net的通用内存缓存模型组件
    Scala学习笔记:重要语法特性
    一个初学者的指南,使用D3做数据绑定
    CLR垃圾回收的设计
    CLR线程概览(下)
    CLR线程概览(一)
    使用sos查看.NET对象内存布局
    .NET对象的内存布局
    MYC编译器源码之代码生成
  • 原文地址:https://www.cnblogs.com/aaa2832/p/2594036.html
Copyright © 2020-2023  润新知