
android
JackLam
好,好,好,好
展开
-
android发现之旅之ViewRootImpl,Activity,Window,DecorView之间的关系
android复杂的概念,经常会弄的人晕头转向.本篇说说ui里几个概念的关系.1. 从activity启动流程,可以看出各个对象的关系大家都知道,这是android ui的核心概念.收的就是界面的一个活动交互界面.用startAcvitity的方式启动.省去中间状态:在activity的attach接口中:5063 mWindow = PolicyM转载 2015-11-25 16:38:14 · 3253 阅读 · 2 评论 -
webview优化
1.加快HTML网页装载完成的速度默认情况html代码下载到WebView后,webkit开始解析网页各个节点,发现有外部样式文件或者外部脚本文件时,会异步发起网络请求下载文件,但如果在这之前也有解析到image节点,那势必也会发起网络请求下载相应的图片。在网络情况较差的情况下,过多的网络请求就会造成带宽紧张,影响到css或js文件加载完成的时间,造成页面空白loading过久。解决的转载 2015-07-16 11:39:15 · 3266 阅读 · 0 评论 -
android的日积月累-显示&窗口
获取显示屏幕信息 Display display = getWindowManager().getDefaultDisplay(); Resource.nDisplayWidth = display.getWidth(); Resource.nDisplayHeight = display.getHeight(); 从系统属性中获取现在BUILD的信息原创 2012-03-23 10:42:09 · 1368 阅读 · 3 评论 -
BootAnimation使用surfaceflinger分析
详细,可参照原创 2014-08-28 15:31:54 · 4347 阅读 · 0 评论 -
packages.list和packages.xml
com.android.soundrecorder 10021 0 /data/data/com.android.soundrecordercom.android.sdksetup 10020 0 /data/data/com.android.sdksetupcom.android.launcher 10005 0 /data/data/com.android.launchercom.and原创 2014-08-04 15:33:52 · 9980 阅读 · 0 评论 -
android build.prop详解
# begin build properties开始设置系统性能# autogenerated by buildinfo.sh{通过设置形成系统信息}ro.build.id=MIUI(版本ID)ro.build.display.id=oyang06_MIUI(版本号)ro.build.version.incremental=2.2.1(版本增量)ro.bui转载 2014-08-04 14:31:20 · 14645 阅读 · 0 评论 -
sytemserver的启动过程
(frameworks/base/cmds/app_process/app_main.cpp)在 Android中使用启动脚本init.rc,可以在系统的初始化过程中进行一些简单的初始化操作。这个脚本被直接安装到目标系统的根文件系统中,被 init可执行程序解析。 init.rc是在init启动后被执行的启动脚本.android启动文件系统后调用的第一个应用程序是/init,此文件的很重要原创 2014-07-25 13:44:12 · 3084 阅读 · 0 评论 -
installd分析
Installer是systemserver第一个创建的对象,代码位于frameworks/base/services/java/com/android/server/pm/Installer.java)原创 2014-07-25 16:32:41 · 3827 阅读 · 0 评论 -
Looper,Handler, HandlerThread,Message,MessageQueue分析
首先,还是从SystemServer开始原创 2014-07-23 16:50:33 · 2093 阅读 · 0 评论 -
NDKNDK编程入门笔记
为何要用到NDK?前段时间,工作中需要用android的应用程序访问android的根文件系统中的文件,但是由于应用程序的权限限制,无法访问这些文件,怎么办? 所以这就要用到了NDK编程了,既用C/C++代码实现访问系统文件,并将其生成本地库,供android中的java代码调用,这样就可以在java代码中通过调用C/C++编写的库的接口来实现对系统文件的访问。 下面就介绍下An转载 2012-04-12 14:47:44 · 1240 阅读 · 4 评论 -
FindBugs 错误信息汇总
1.Call to equals() comparing different type 大部分都是类型永远不会有这种情况 比如a为DOUBLE类型所以EQUALS只匹配字符串 if(a.equals())或if(a.quals())这类判断是根本不会有用的的2.Class doesn't override equals in superclass supe转载 2015-07-23 15:42:54 · 905 阅读 · 0 评论 -
Android Studio系列教程六--Gradle多渠道打包
由于国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包,如果让你打几十个市场的包岂不烦死了,不过有了Gradle,这再也不是事了。友盟多渠道打包废话不多说,以友盟统计为例,在AndroidManifest.xml里面会有这么一段:<meta-data android:name="UMENG_CHANNEL"转载 2015-09-14 11:13:30 · 724 阅读 · 2 评论 -
从ViewRootImpl类分析View绘制的流程
【转载请注明出处:从ViewRootImpl类分析View绘制的流程 优快云 废墟的树】从上两篇博客 《从setContentView方法分析Android加载布局流程》 和 《从LayoutInflater分析XML布局解析成View的树形结构的过程》 中我们了解到Activity视图UI是怎么添加到Activity的根布局DecorView上面的。我们知道Activi转载 2015-11-25 17:51:38 · 5079 阅读 · 0 评论 -
AlertDialog分析
原创 2015-11-25 16:00:41 · 788 阅读 · 0 评论 -
Launcher分析2
从上图看到有这么些主要的view,同还有一个Cling主要用于workspace,folder,allapps的向导 View的运行主要看Launcher怎样setup 1.Launcher onCreate:a) 创建DragController,带入Launcher,b) 加载DragLayer,Workspace,Hotseat,Sear原创 2015-11-23 16:18:17 · 2198 阅读 · 0 评论 -
Launcher分析3
结合前面两章,通过序列图大概看下launcher启动从application看起从 LaucherActivity看从上面可以看出主要是startloader,回调为launcher,application注册Launchermodel的广播,接收app等更改信息下面是startloader和app监听的序列图根据loader返回回调,触发view和数据原创 2015-11-23 16:26:37 · 1241 阅读 · 2 评论 -
Launcher的分析
Launcher分析 1.AndroidMainifest.xmla) 通过original-package指定原始packageb) 定义了permisson,所属于的permissionGroup为android.permission-group.SYSTEM_TOOLSPRELOAD_WORKSPACE 需要签名一致,且为systemINSTALL_SHORTCUT原创 2015-11-20 17:05:07 · 3479 阅读 · 0 评论 -
Android中将布局文件/View添加至窗口过程分析 ---- 从setContentView()谈起
本文主要内容是讲解一个视图View或者一个ViewGroup对象是如何添加至应用程序窗口中的。 下文中提到的窗口可泛指我们能看到的界面,包括一个Activity呈现的界面(我们可以将之理解为应用程序窗口),一个Dialog,一个Toast,一个Menu菜单等。 首先对相关类的作用进行一下简单介绍: Window 类 位于 /frameworks/base/core/转载 2015-09-18 11:27:25 · 551 阅读 · 0 评论 -
Android ListView工作原理完全解析,带你从源码的角度彻底理解,androidlistview
转载请注明出处:http://blog.youkuaiyun.com/guolin_blog/article/details/44996879在Android所有常用的原生控件当中,用法最复杂的应该就是ListView了,它专门用于处理那种内容元素很多,手机屏幕无法展示出所有内容的情况。ListView可以使用列表的形式来展示内容,超出屏幕部分的内容只需要通过手指滑动就可以移动到屏幕内了。另外转载 2015-09-17 17:45:34 · 2610 阅读 · 0 评论 -
Touch事件分发机制
我们用手指去触摸Android手机屏幕,就会产生一个触摸事件,但是这个触摸事件在底层是怎么分发的呢?这个我还真不知道,这里涉及到操作硬件(手机屏幕)方面的知识,也就是Linux内核方面的知识,我也没有了解过这方面的东西,所以我们可能就往上层来分析分析,我们知道Android中负责与用户交互,与用户操作紧密相关的四大组件之一是Activity, 所以我们有理由相信Activity中存在分发事件的方法原创 2015-09-18 16:25:21 · 1563 阅读 · 0 评论 -
ActivityManagerService和launcher的启动
SystemServer第三个启动的是ActivityManagerService本文参考http://blog.youkuaiyun.com/lilian0118/article/details/26561835(frameworks/base/services/java/com/android/server/SystemServer.java)原创 2014-07-31 17:03:52 · 7837 阅读 · 0 评论 -
Java层Binder使用(ServiceManager)
power = new PowerManagerService();ServiceManager.addService(Context.POWER_SERVICE, power);context = ActivityManagerService.main(factoryTest);Slog.i(TAG, "Display Manager");display = new Displa原创 2014-07-08 16:48:48 · 7085 阅读 · 0 评论 -
Android的日积月累-问题解决
1.问题:控制台出现emulator: ERROR: the user data image is used by another emulator. aborting提示原因:没有正确关闭模拟器解决:在进程中结束adb.exe,重启Eclipse即可。2.问题:出现 emulator-5554 disconnected! Cancelling xxxxxx activity laun原创 2012-03-23 11:34:38 · 2198 阅读 · 2 评论 -
Android XML解析(Simple API for XML(SAX) )
在Android平台上可以使用Simple API for XML(SAX) 、 Document Object Model(DOM)和Android附带的pull解析器解析XML文件。下面是本例子要解析的XML文件:文件名称:itcast.xml李明30李向梅25例子定义了一个javabean用于存放上面解析出来的xml内容,转载 2012-05-02 10:49:49 · 1741 阅读 · 0 评论 -
Windows git和repo下载Android源代码
大家好,这篇文章我将教大家如何在Windows环境下下载Android源码,Android自2007年11月5号发布以来,发展速度如此之快,和它走开源的路是分不开的。我们在开发中有什么不明白不清楚的,直接把Android源码下下来研究就可以了,看源代码将会让你提升很快! 在这之前大家先熟悉俩个代码版本管理工具SVN,以及Git。 SVN(Windows环境下最常用的):转载 2011-04-24 23:26:00 · 20398 阅读 · 6 评论 -
android完全自绘Widget(2D)
Android提供了一个功能强大的UI组件模型,基于丰富的布局类View和ViewGroup。我们这章就是基于View和ViewGroup派生的子类开始来讲怎样建立自己UI。 Android系统提供了部分可用的Widget,包括Button, TextView, EditText, ListView, CheckBox, RadioButton, Gallery, Spinner,还原创 2011-05-25 23:39:00 · 1623 阅读 · 0 评论 -
android组合自绘Widget(2D)
现在介绍另一种自绘方式,这种方式利用的原有的Widget,将這些Widget组合起来形成自己的Widget(如由Edit和Button等组成的下拉列表框)。下面是如何创建组合Widget的步骤:1. 创建一个从Layout继承过来的子类,比如LinearLayout2. 在新创建的类里面的构造函数中,有三个构造函数,一个参数的构造函数主要是让使用者能动态建立,而两个参数的原创 2011-05-28 00:16:00 · 898 阅读 · 0 评论 -
android自绘Widget(2D)之修改存在的WIDGET
Android自绘widget有更加容易的方法。假如你要创建一个很像android里其中一个内置widget,那么你可以直接继承这个widget,然后重载你想改变的行为。在后面的例子中是这种自绘widget的实现,同时在实现前,先说一些需要注意的。1. 从例子中,可以看到我们继承类的属性不同于之前,publicstatic class LinedEditText原创 2011-05-28 00:21:00 · 1006 阅读 · 0 评论 -
Android下使用Properties文件保存程序设置
读取.properties文件中的配置: String strValue = ""; Properties props = new Properties(); try { props.load(context.openFileInput("config.properties")); strValue = props.getProperty (keyName); Sy转载 2012-03-23 11:40:28 · 6803 阅读 · 4 评论 -
Notification实现下载进度显示!
用惯了Android的人在刚拿到iPhone的时候,总是会习惯性的用手指从状态栏往下拖一下,这都是给Notification闹的。不过Notification也确实是1个不错的提示工具,不干扰正常的操作,事后还可以再翻看详细的内容,点击后还可以进入相关的画面查看更具体的内容。今天我就以代码为主的形式来介绍Notification的使用,包括基本用法,自定义的View,以及更多的控制方法。转载 2012-04-10 16:14:07 · 4002 阅读 · 1 评论 -
Android XML解析(Document Object Model(DOM))
DOM解析XML文件时,会将XML文件的所有内容读取到内存中,然后允许您使用DOM API遍历XML树、检索所需的数据。使用DOM操作XML的代码看起来比较直观,并且,在某些方面比基于SAX的实现更加简单。但是,因为DOM需要将XML文件的所有内容读取到内存中,所以内存的消耗比较大,特别对于运行Android的移动设备来说,因为设备的资源比较宝贵,所以建议还是采用SAX来解析XML文件,当然,如果转载 2012-05-02 11:05:05 · 1868 阅读 · 0 评论 -
Android XML解析(Pull解析器)
Pull解析器的运行方式与 SAX 解析器相似。它提供了类似的事件,如:开始元素和结束元素事件,使用parser.next()可以进入下一个元素并触发相应事件。事件将作为数值代码被发送,因此可以使用一个switch对感兴趣的事件进行处理。当元素开始解析时,调用parser.nextText()方法可以获取下一个Text类型元素的值。import org.xmlpull.v1.XmlPullPa转载 2012-05-02 11:09:07 · 828 阅读 · 0 评论 -
android的日积月累-监听短信
监听短信数据库的变化,当收到短信数据库变化了的时候,去取得最新的那条短信即可。或者你想别的什么操作也可以。监听类SmsReceiver.java[java]package com.pei.broadcastReceiver; import java.util.List; import com.pei.fixed.AllFinalInfo; import co转载 2012-03-28 10:05:11 · 1100 阅读 · 0 评论 -
android的日积月累-进行WIFI,CMWAP和CMNET的自动判断访问
智能进行WIFI,CMWAP和CMNET的自动判断访问引用文件:import android.app.AlertDialog;import android.content.BroadcastReceiver;import android.content.ContentResolver;import android.content.ContentValues;import转载 2012-03-23 10:04:14 · 1291 阅读 · 0 评论 -
Binder中的ProcessState和IPCThreadState分析
ProcessState和IPCThreadState最为binder通信的基础,我们从MediaPlayer来开始分析这两个类原创 2014-07-18 13:48:12 · 10382 阅读 · 0 评论 -
通过MediaPlayer理解Binder的使用
理解Binder的使用是一件不容易的事,尤其由浅入深,本文参考Android深入浅出之Binder机制和Android Binder设计与实现这两文章为基础,从Java层的MediaPlayer开始分析Client, Server 和ServiceManager!至于Binder的实现可以搜索优快云老罗的文章,涉及到kernel这里不讨论,本文只作为分析android代码记忆用 首先,先原创 2014-07-07 16:10:17 · 4186 阅读 · 0 评论 -
Parcel分析
Parcel是android中不同于Java Serialize新的序列化机制。Java Serialize机制作用是能将数据对象存入字节流中,在需要时重新生成对象。主要应用是利用外部存储设备保存对象状态,以及通过网络传输对象等。而android系统定位内存受限设备,对性能要求更高,而且系统中采用了binder ipc机制,就需要求性能更出色的对象传输方式。Parcel定位就是轻量级高效的原创 2014-07-17 17:24:09 · 11241 阅读 · 0 评论 -
Cocos2d-x源代码剖析(引用库)
我们先从目录结构开始讲解,然后以上篇文章的SimpleGame Activity继承的Cocos2dxActivity讲解怎么让android程序和cocos2dx协作1.引用库目录结构剖析引用库的目录结构如图。H和。Cpp主要是做适配器,适配不同的平台,android下则为适配器的实现Android目录如上,其中。H和。Cpp是前面适配器的适配实现,java和jni为原创 2013-05-23 15:18:59 · 6938 阅读 · 0 评论 -
Cocos2d-x源代码剖析-SimpleGame代码剖析
拿到了Andreas Loew TexturePacker和PhysicsEditor的key 和keyfile,可以开始Cocos2d-x源代码剖析了,感谢Cocos2d-x能开源,感谢Andreas Loew能免费给开发者使用他的TexturePacker和PhysicsEditor Cocos2d-x源代码剖析(SimpleGame代码剖原创 2013-05-23 09:58:51 · 6539 阅读 · 3 评论 -
Android 文件系统获取root权限和重新挂载根目录为可读写
最近在移植android2.3到s3c6410平台,文件系统成功挂载后,在超级终端执行一些命令不成功,比如mkdir,这样的基础命令,后来查阅资料,是自己没有取得root权限,只需在启动的shell时,指定该程序(shell 程序)属于root用户即可,修改init.rc文件如下:原始init.rc设置: service console /system/bin/sh转载 2013-03-22 17:08:05 · 6347 阅读 · 0 评论