android
文章平均质量分 68
time_hunter
这个作者很懒,什么都没留下…
展开
-
Android tips tool 发现的性能问题
1.ObsoleteLayoutParam不起作用的标签Invalid layout param in a LinearLayout: layout_centerVerticalIssue: Looks for layout params that are not valid for the given parent layoutId: ObsoleteLayoutParam原创 2013-03-12 18:19:01 · 10683 阅读 · 4 评论 -
Android 基础知识 Message MessageQueue Handler Looper 关系 图示
关系细节如图下,Message Pool图示请参考Code Fragment-Message Pool的实现与处理原创 2013-08-10 12:14:05 · 843 阅读 · 0 评论 -
Android Looper 类
Looper类的重要字段字段汇总 static final ThreadLocal sThreadLocal = new ThreadLocal(); private static Looper sMainLooper; // guarded by Looper.class final MessageQueue mQueue; final Th原创 2016-11-07 22:56:24 · 978 阅读 · 0 评论 -
ViewStub的实现
一个例子点击按钮前点击按钮后UI布局文件activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:la原创 2016-12-12 21:17:16 · 417 阅读 · 0 评论 -
学习BlockCanary的实现
Android如何获取主线程堆栈信息Thread.getStackTrace()方法。如何在其他线程获取主线程引用 : Looper.getMainLooper().getThread();如何Cpu使用情况获取Cpu总数据,来自CpuSampler的doSample方法 @Override protected void doSample()原创 2016-11-15 00:33:29 · 1518 阅读 · 0 评论 -
Zygote & System Server & app
Zygote:作用:Zygote负责fork其他的Android进程:所有的应用程序进程 ,SystemServer。关于Zygote:是安卓运行的第一个Dalvik虚拟机进程。/System/bin/app_process 是Zygote对应的进程。SystemServer 和 Zygote分属android操作系统不同Davik虚拟机上运行的不同进程。app_p原创 2016-12-23 17:53:30 · 971 阅读 · 1 评论 -
View的绘制
将View添加到WindowManagerService的过程1 : ActivityThread.handleResumeActivity从上面可知,WindowManager是通过Activity的getWindowManager获取到的更进一步,发现WindowManager是在attach的时候被赋值的。mWindowManager又原创 2016-12-28 17:40:54 · 429 阅读 · 0 评论 -
PhoneWindow & Activity
Activity的UI的层次结构DecorView 是什么?DecorView是ViewTree最顶层的View。DecorView与PhoneWindow的关系Activity的UI结构对照一个简单的Activity:继承自ActivityUI结构对照图Activity的UI 组建原创 2016-12-28 20:41:03 · 536 阅读 · 0 评论 -
Android Launcher应用的加载过程
开机第一次启动过程如下一、首先创建数据库相关1.创建数据库favorites表。2.从default_workspace.xml加载桌面默认的配置信息,写入数据库。二、加载LauncherApplication1.启动Launcher重写过的Application子类LauncherApplication。2.在Application的onCreat原创 2013-05-13 23:24:06 · 1866 阅读 · 0 评论 -
Mat 工具 能够做的事情
一、图示1.饼状图:反应的大的对象的占用的retained size。a.可以反映出相关对象所在的类,大小,以及classloader。2.柱状图:根据不同的类类型列出相关的内存占用情况。a.根据不同的类类型来列出所占用的大小。比如int[]类型的大小占用。b.通过list objects->with incoming references找出具体的变量原创 2013-05-13 11:13:06 · 759 阅读 · 0 评论 -
Android Tips tool found issue.
This Handler class should be static or leaks might occur (com.borqs.appinstaller.AppMoveFragment.LoadAppHandler)Issue: Ensures that Handler classes do not hold on to a reference to an outer clas原创 2013-03-12 17:03:41 · 620 阅读 · 0 评论 -
Android 工程无法 build
可能有一下几个原因:1.检查系统空间是否足够,否,删掉一些文件。2.重启Eclipse。3.Eclipse->Preference->Android->is Library是否unchecked。4.检查Android SDK Manager是否安装了必须的插件,如build tools。5.如果是重启Eclipse,重新build。原创 2013-05-25 09:01:19 · 1791 阅读 · 0 评论 -
MAT 工具的使用的一些知识
Mat工具一、图示1.饼状图:反应的大的对象的占用的retainedsize。a.可以反映出相关对象所在的类,大小,以及classloader。2.柱状图:根据不同的类类型的实例个数,按实例的数目多少列出。a.根据不同的类类型来列出所占用的大小。比如int[]类型的大小占用。b.通过listobjects->with incoming references找出具原创 2013-05-26 16:16:41 · 1404 阅读 · 0 评论 -
Android 性能优化的一些知识
性能优化的一些知识本文参考多处分别是书籍:《重构-改善既有代码的设计》《Android应用性能优化》《Java程序性能优化》《大话数据结构》《深入理解Java虚拟机》博客:http://www.cnblogs.com/xwdreamer/archive/2012/05/14/2499339.htmlhttp://www.androidside.com/doc原创 2013-05-07 20:08:57 · 1003 阅读 · 0 评论 -
从产品角度考虑软件的开发的一些浅识
1.给不同尺寸的设备提供不同的展现交互方式I。2.对于小尺寸的设备,通过减少一些非必要的功能来保持应用程序的简洁性。3.对于可视部分的UI首先加载。4.减少流量的耗费a.流量设置:用户可以选择在wifi,普通的数据链接下不同的数据获取方式。b.下载大物件:只在wifi情况下下载。c.高清与节流模式。5.使用动画代替干巴巴的跳转。6.保证可点击的button足原创 2013-05-25 11:06:36 · 902 阅读 · 0 评论 -
Android Hierarchy 工具的一些知识
1.可以显示measure,layout,draw使用的时间。2.使用红绿灯指示可能有问题的地方,速度 :红3.可以显示View的Id,通过id可以定位那个View。4.可以显示出UI控件的截图来,方便识别。5.看不同等级层次的Layout,比如说看Launcher最初布局分类。6.可以看像素级别的放大图。原创 2013-05-13 11:33:33 · 707 阅读 · 0 评论 -
Android lint 能够做的事情
一、Android Lint能够查找到的问题1.性能:冗余的东西。复杂的UI结构。merge root View。没有用的资源。overdraw2.正确性:sdcard路径hardcode,使用方法代替。相同的id的view被引入。Style文件中的循环调用。Activity,service,ContentProvider在And原创 2013-05-13 11:20:48 · 784 阅读 · 0 评论 -
TraceView的一些知识
一、步骤1.在Activity中添加方法。2.生成trace文件到sdcard。3.使用traceview打开trace文件。二、作用1.不同颜色区分方法的执行时间。2.可以列出方法本身的执行时间和方法的调用子函数所花费的时间。3.可以搜索自己的方法,快速定位。4.可以列出方法的调用者和被调用者。5.双击方法可以显式说明方法的区间。原创 2013-05-13 14:46:46 · 757 阅读 · 0 评论 -
Android app 优化
一、内存避免内存泄漏内存泄漏的常见情况不恰当的static引用。内部类引起的外部类泄漏内部类AsyncTask、Handler、Runnable持有context对象:是否可以修改为静态内部类?在Activity onDestroy的时候,是否可以remove task,remove callback?是否可以使用Application 的con原创 2016-12-12 16:30:55 · 463 阅读 · 0 评论