- 博客(12)
- 收藏
- 关注
原创 Launcher3源码分析 — 启动过程
在main Activity执行之前会先执行Application类的onCreate方法public class LauncherApplication extends Application { @Override public void onCreate() { super.onCreate(); LauncherAppState.setApp
2014-03-05 00:10:31 5783 2
原创 Launcher3源码分析 — ui结构
在android4.4后,nexus设备使用Google Experence作为默认的Launcher,其实它的代码就是android4.4源码里的Launcher3,只是针对google now做了些修改,大体框架还是一样的。我们可以通过hierarchyviewer工具和布局文件launcher.xml来大致了解下Launcher3的UI结构。launcher.xml:<Fra
2014-03-04 21:34:27 9640 10
翻译 Java架构介绍(三)
Java APIJava API是一套提供标准方式来访问主机系统资源的运行时库。当你运行一个java程序时,虚拟机会加载程序的class文件中引用到的Java API class文件。所有被加载的class文件(程序中的和Java API的)和被加载的动态链接库(含有native方法)组成了完整的Java虚拟机执行程序。Java API的class文件本质上是特定于主机平台
2014-03-27 11:01:01 816
翻译 Java架构介绍(二)
类加载器的结构类加载器在安全性和网络移动性上起着重要作用,一个java虚拟机中可以包含多个类加载器,这些类加载器组成了类加载器子系统。Java应用程序可以使用两种类型的类加载器:一个bootstrap类加载器user-defined类加载器bootstrap类加载器是Java虚拟机实现的一部分,它通常从本地磁盘中以某种默认的方式加载class文件
2014-03-26 21:43:48 833
翻译 Java架构介绍(一)
java语言平台架构java语言的平台架构由下面四部分组成:java编程语言java的class文件格式java应用程序接口(API)java虚拟机这四部分的关系如下图所示:可以看到,java编程环境分为两个时期,编译时和运行时,程序中的java源文件(A.java, B.java)在编译期通过java提供的编译器编译成class文件(A.class, B.
2014-03-26 11:46:52 1329
原创 Launcher3源码分析 — bindWorkspaceItems的具体实现
通过调用bindScreens(),主界面完成了页面的加载,接下来就要开始加载各页面内容了。为了提高用户体验,会先加载当前页面的内容,再加载其他页面的内容。在workspace中调用bindWorkspaceItems()完成页面内容的加载,具体代码如下: // oldCallbacks: 一个Callback引用 // workspaceItems: 页面的apps
2014-03-25 17:10:21 3091
原创 Launcher3源码分析 — bindScreen的具体实现
前面讲到,在bindWorkspace中涉及了以下几个回调方法:startBinding();bindScreens();bindWorkspaceItems();finishBindingItems();
2014-03-25 14:29:27 3628
原创 Launcher3源码分析 — 主界面的UI结构
使用android sdk里面的HierarchyViewer工具可以查看应用的布局树状图,下面是Launcher3主界面的UI结构在Launcher界面中这几个组件的布局如下图所示:CellLayout就是Launcher主界面中的每个页面,Workspace就是各页面的容器,控制页面的滑动,BubbleTextView就是每一个app。那ShortcutWidg
2014-03-25 11:41:21 4286
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人