FrameLayout measure过程源码Log全解析之二:修改framework代码,输出Log
来源:互联网 发布:台州学院网络教学平台 编辑:程序博客网 时间:2024/05/16 12:02
流程
我们先修改一个FrameLayout.java文件,确认logcat可以使用,然后再阅读measure的代码,了解大概流程,以及不同类函数之间的调用关系,最后再加入Log代码详细分析measure过程。本篇为确认logcat可用。编辑器为Emacs24。
源码位置
我们要修改的代码位于
frameworks/base/core/java/android/
这里是安卓框架的源码。具体要修改的文件是截图里android目录下的
widget/FrameLayout.java
修改源码
顶部加入
import android.util.Log;
加入Log代码
protected void onMeasure(int widthMeasureSepc, int heightMeasureSpec) { Log.i("FW", "FrameLayout enter onMeasure(,)"); ...}
重新编译
退回到根目录,执行
make -j4这次编译内容较少,时间比较短,在我的笔记本上大概用了15-20分钟。第一次编译用了好几个小时,汗。
启动模拟器
注意事项参看第一篇启动模拟器部分。
/Applications/Android\ Studio.app/sdk/tools/emulator @MyPhone -system system.img -ramdisk ramdisk.img
如果模拟器不能启动,比如卡在Logo,应该是修改代码的时候出现了什么问题,因为系统也用到了FrameLayout。这时候新开一个命令行窗口,输入:
adb logcat
就可以看到加载的过程,看看有没有什么错误出现。比如我就曾经有个null pointer exception,浪费了好久时间。
如果顺利的话,应该会看到:
测试Log代码
写一个简单的app, 在activity的xml中把最外面的layout改为FrameLayout,然后run,选择刚才用命令行启动的模拟器。
(下图padding什么的是AS自动生成的,不要也可以。)
如果顺利的话你会看到
07-28 04:01:21.099 1170-1170/creation.philip.frameworktest I/FW﹕FrameLayout enter onMeasure(,)
下篇预告
下一篇我们将会阅读FrameLayout的onMeasure源码,看看onMeasure大致流程是怎样,是不是有点小激动呢。
FrameLayout measure过程源码Log全解析系列
0 0
- FrameLayout measure过程源码Log全解析之二:修改framework代码,输出Log
- FrameLayout measure过程源码Log全解析之三:onMeasure代码概览
- FrameLayout measure过程源码Log全解析之四:onMeasure第一部分之ViewGroup对view的管理
- FrameLayout measure过程源码Log全解析之五:onMeasure第一部分之MeasureSpec类的bit-mask
- FrameLayout measure过程源码Log全解析之六:onMeasure第一部分之MeasureSpec类mode和size
- FrameLayout measure过程源码Log全解析之一:源码下载及编译
- Log.isLoggable之二源码解析
- rails 源码解析之log notification/subscribe
- JNI学习二之(C源码中Log输出及常见错误)
- git log命令全解析
- python tornado修改log输出
- log::Writer-levelDB源码解析
- log::Reader-levelDB源码解析
- log format-levelDB源码解析
- android View measure过程源码解析
- Android源码解析之(六)-->Log日志
- log 输出
- Log输出
- LUA面向对象程序设计(四)多重继承
- 雷德为您展现立式锯床的特色
- C++多态性1
- Java Web开发简介(章节摘要)
- Ubuntu 14.04 LTS下安装 LNMP环境
- FrameLayout measure过程源码Log全解析之二:修改framework代码,输出Log
- SQlServer 安装出错:未指定 INSTANCESHAREDWOWDIR 命令行值
- LUA面向对象程序设计(六)数据的封装
- 智能家居:智能中心还是消息总线(I)
- HDU4597:Play Game(记忆化)
- 杭电 1060
- 黑马程序员 - 学习笔记2 对象 类 方法 属性
- java笔记-多线程-线程安全
- javaScript 超时与间歇掉用