您的位置:首页 > 其它

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及错误解决

在源码根目录输入以下命令

建立环境

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中的模拟器,用源码中的也可以。这时候模拟器就会启动了。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: