前言
本文主要是摘抄关于Android的编译。虽然都用过,但偶尔还是记不住。摘抄于此,方便自己查阅。
正文
在Android源码目录下执行
source build/envsetup.sh
执行完上面的后
lunch 95
我这里是加载编译目标为95,具体看你选择选择编译目标。
如果不知道lunch哪一个,可以先执行lunch,后面会有选项让你选择哪个编译目标。
完整编译
make # 同时运行8个job,这样可以加快编译 make -j8
单独编译
这里以编译MediaProvider为例。
方式一
make 模块名
make MediaProvider
会把该模块依赖的其他模块也一起编译。
方式二
mmm 指定模块名的目录
比如
mmm packages/providers/MediaProvider
该命令将编译指定目录下的目标模块,而不编译它所依赖的模块。
所以,如果是初次编译,采用这种方式编译一个模块往往会报错。错误的原因是因为它依赖的模块没有被编译。
方式三
mm
这种事需要进入模块下目录,比如MediaProvider,需要进入packages/providers/MediaProvider目录下,然后执行mm即可。
它和mmm一样,只编译目标模块,mm和mmm命令编译的速度都很快。
注意事项
一般的编译方式都使用增量编译,即只编译发生变化的目标文件,但有时则需重新编译所有目标文件,那么就可使用make命令的-B选项。
例如make -B 模块名,或者mm -B、mmm -B,在mm和mmm内部,也是调用make命令的,而make的-B选项将强制编译所有目标文件。
参考文章
-
《
历史上的今天
暂无评论...
随机推荐
Android Studio‘Library projects cannot set applicationId’
前言Library projects cannot set applicationId. applicationId is set to 'com.biumall.usercenter' in default config.摘抄于此,方便自己查阅。正文动态配置module时,当前设置为l...
Android消息机制之一基础简介(1)
在项目中,使用Handler是比较多的,延迟处理信息啊,或者跨线程刷新UI界面啊等.用大家都会用,但要用好,或许只能多看看源码和跟大牛们学习学习了.Handler.java,Looper.java,Message.java,MessageQueue.java这几个类主要是在/frameworks/...
Android换肤之Toast和Dialog
前言前面介绍过Android静态换肤日夜模式的切换(原文:《Android静态换肤-日夜主题切换之继承Activity记录 》),从中我们知道,Toast和Dialog存在无法切换成功。原因是Toast或者Dialog是需要时才去初始化的,此时换肤插件没法获取到View。PS:日夜模式不存在...
《MySQL基础教程》笔记7
前言主要是记录一下join和where等命令的使用。根据《MySQL基础教程-西泽梦路》学习,简单的做一下笔记。记录于此,方便自己回忆。正文我这以Window版的phpstudy软件验证。需要进入这个目录,才可以使用mysql命令D:\phpstudy_pro\Extensions\M...
Thread.join()简单介绍
前言简单记录一下Thread.join()的作用。这里只是简单记录一下,方便自己回顾而已。正文join()是在Thread.java中定义join源码/** * Waits for this thread to die.[等待这个线程死亡] * @throws Interrupt...
Android Switch简介
前言Android中的Switch控件很使用,比如WiFi开关等。Switch可以提供切图,也可以自定义属性。本文就是主要介绍自定义。记录一下,方便自己查阅和回顾。正文activity_main.xml<Switch style="@style/Widget.AppComp...