FrameLayout measure过程源码Log全解析之一:源码下载及编译
2014-07-28 13:58
218 查看
前面的话
view的加载分为measure, layout, draw三个步骤。其中view的measure过程相对比较复杂,为了更好地写自定义view widget,有必要搞清楚measure的具体执行方法。本系列将会从android framework的源码角度,一步一步分析FrameLayout的measure过程。
相比LinearLayout和RelativeLayout,FrameLayout的measure过程比较简单,因此我们从FrameLayout开始。我们将会修改android framework源码,添加Log代码,不仅分析源码,也通过Log消息证实/伪我们的分析。
下载源码
1. 常规的源码下载方法
通过repo下载。repo是git的wrapper。这应该是最方便的下载方法了,不过最近服务器总连不上。浪费了我n多时间和睡眠最后还是放弃了。
参考:http://source.android.com/source/downloading.html
2. 网盘打包下载
这个博客有4.4代码打包下载,非常不错哦。博主真是好人。亲测可用。
http://blog.csdn.net/Innost/article/details/14002899
build环境
我用的是OSX 10.9.3,unix系列的都可以。windows没有试过。
注意OSX文件系统默认是大小写不敏感的。需要建立sparse image。我直接分了一个区,分区的时候选择case-sensitive mac日志格式也可以。
编辑环境我使用Android Studio(以下AS)和Emacs。
make及错误解决
在源码根目录输入以下命令
建立环境
选择镜像版本
我选择的是 asop-arm-eng
然后环境就建立好了
接着开始编译项目
-j4 是4线程的意思,自行调整。首次编译需要很长时间,我的笔记本用了大概3小时左右。台机大概20分钟左右。
如果出现,chromium_org中出现JNI神马错误的。是因为代码本身对OSX识别有问题。可以参考github上这个方法修改源码。
https://github.com/CyanogenMod/android_external_chromium_org/commit/5130af630390487b37d99941887883647c67f37a
源码定位
make完了之后会显示:
Install system fs image: out/target/product/generic/system.img
out/target/product/generic/system.img+ maxsize=588791808 blocksize=2112 total=576716800 reserve=5947392
整个编译后安卓文件夹截图如下:
设置模拟器
编译好的source里面带有一个模拟器,因为我比较懒,不想敲太多命令,就直接用了AS里面的AVD manager建立了名为MyPhone的模拟器。截图如下。
可以看到out/target/product/generic下面有几个img
现在将刚才编译好的镜像刷入这个模拟器,在generic目录下输入:
/Applications/Android\ Studio.app/sdk/tools/emulator @MyPhone -system system.img -ramdisk ramdisk.img
注意我用的是SDK中的模拟器,用源码中的也可以。这时候模拟器就会启动了。
view的加载分为measure, layout, draw三个步骤。其中view的measure过程相对比较复杂,为了更好地写自定义view widget,有必要搞清楚measure的具体执行方法。本系列将会从android framework的源码角度,一步一步分析FrameLayout的measure过程。
相比LinearLayout和RelativeLayout,FrameLayout的measure过程比较简单,因此我们从FrameLayout开始。我们将会修改android framework源码,添加Log代码,不仅分析源码,也通过Log消息证实/伪我们的分析。
下载源码
1. 常规的源码下载方法
通过repo下载。repo是git的wrapper。这应该是最方便的下载方法了,不过最近服务器总连不上。浪费了我n多时间和睡眠最后还是放弃了。
参考:http://source.android.com/source/downloading.html
2. 网盘打包下载
这个博客有4.4代码打包下载,非常不错哦。博主真是好人。亲测可用。
http://blog.csdn.net/Innost/article/details/14002899
build环境
我用的是OSX 10.9.3,unix系列的都可以。windows没有试过。
注意OSX文件系统默认是大小写不敏感的。需要建立sparse image。我直接分了一个区,分区的时候选择case-sensitive mac日志格式也可以。
编辑环境我使用Android Studio(以下AS)和Emacs。
make及错误解决
在源码根目录输入以下命令
建立环境
source build/envsetup.sh
选择镜像版本
lunch
我选择的是 asop-arm-eng
然后环境就建立好了
接着开始编译项目
make -j4
-j4 是4线程的意思,自行调整。首次编译需要很长时间,我的笔记本用了大概3小时左右。台机大概20分钟左右。
如果出现,chromium_org中出现JNI神马错误的。是因为代码本身对OSX识别有问题。可以参考github上这个方法修改源码。
https://github.com/CyanogenMod/android_external_chromium_org/commit/5130af630390487b37d99941887883647c67f37a
源码定位
make完了之后会显示:
Install system fs image: out/target/product/generic/system.img
out/target/product/generic/system.img+ maxsize=588791808 blocksize=2112 total=576716800 reserve=5947392
整个编译后安卓文件夹截图如下:
设置模拟器
编译好的source里面带有一个模拟器,因为我比较懒,不想敲太多命令,就直接用了AS里面的AVD manager建立了名为MyPhone的模拟器。截图如下。
可以看到out/target/product/generic下面有几个img
现在将刚才编译好的镜像刷入这个模拟器,在generic目录下输入:
/Applications/Android\ Studio.app/sdk/tools/emulator @MyPhone -system system.img -ramdisk ramdisk.img
注意我用的是SDK中的模拟器,用源码中的也可以。这时候模拟器就会启动了。
相关文章推荐
- Ubuntu下载编译Android源码全过程
- 去年12月下载编译android4.2.1源码的过程截图
- FrameLayout measure过程源码Log全解析之四:onMeasure第一部分之ViewGroup对view的管理
- Android源码编译、下载、导入Android Studio过程记录(MacOS 10.12)
- 【hadoop 2.6】hadoop 2.6源码编译过程,redhat 5.8操作系统进行编译【附:软件下载】
- Ubuntu下载编译Android源码全过程
- Ubuntu12.04下Android4.0.4源码的下载及其编译过程
- FrameLayout measure过程源码Log全解析之五:onMeasure第一部分之MeasureSpec类的bit-mask
- Android源码下载和编译过程
- Ubuntu12.04下Android4.0.4源码的下载及其编译过程
- Ubuntu12.04下在Android4.0.4源码下载及其编译过程
- 动手改造Ibatis,使其支持文件系统存储数据列 之 源码下载编译和SqlMapConfig解析
- TextMate2 最新版下载及源码编译过程
- FrameLayout measure过程源码Log全解析之六:onMeasure第一部分之MeasureSpec类mode和size
- Ubuntu12.04下在Android4.0.4源码下载及其编译过程
- Android系统源码编译全过程——下载Android源文件并编译
- Android源码从下载到编译全过程
- openWRT自学---自己编译的第一个 backfire10.03 版本的过程记录 --- 实际是由于下载了错误的backfire源码包导致的
- android源码下载与编译过程记录
- Android源码下载与编译全过程