博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  Android Launcher分析

分析Android原生Launcher功能,以及修改过程
摘要:已经很久没更新Launcher系列文章,今天不分析源码,讲讲如何在Launcher里面添加桌面设置的功能。目前很多第三方Launcher或者定制Rom都有简单易用的桌面设置功能。例如小米MIUI的Launcher就有很丰富编辑功能。今天开始会讲一下如何实现桌面编辑功能。网上对于实现Launcher一些编辑功能的文章凤毛麟角,基本没什么资料可以参考,只能靠自己摸索对比别人Launcher的效果。 桌面编辑功能我主要分为 壁纸设置、Widget插件、切换特效、主题 4个部分。这个主要是参考OPPO的手机做的,个人觉得Oppo手机这方面做得挺不错。今天先说说壁纸设置功能,长按桌面或者在Work... 阅读全文

posted @ 2013-09-11 23:25 泡泡糖 阅读(36648) 评论(13) 推荐(0) 编辑

摘要:很久没写Launcher分析的文章,最近实在太忙。今天七夕本来是想陪女朋友逛街 ,碰巧打台风呆在家里,就继续写一篇文章。今天主要是讲一下Launcher里面的Widget列表,这方面信息比较多,今天重点讲一下Widget信息收集和Launcher是如何显示Widget。这是这个系列第12篇文章,可是有关Launcher的分析感觉还有很多东西要写。 Widget列表是Android4.0以后才有的一种新特性,主要是可以直接查看Widget的缩略图,方便用户使用。而且Widget列表放到了AllApp里面,用一个TabHost管理。有关AllApp的TabHost切换,可以参考我前面的文章:... 阅读全文

posted @ 2013-08-14 00:15 泡泡糖 阅读(8477) 评论(1) 推荐(2) 编辑

摘要:Android4.0的Launcher自带了一个简单的分页指示器,就是Hotseat上面那个线段,这个本质上是一个ImageView利用.9.png图片做,效果实在是不太美观,用测试人员的话,太丑了。特别是搭配其他风格的图标和背景,的确不好看。所以打算自己重新写一个指示器。这个所谓的分页指示器作用很简单,就是告诉用户界面有多少分屏,目前处于第几分屏。当然目前也有一些Launcher增强了这个功能,只要滑动这些指示器就可以 快速滑动桌面。 今天给大家讲讲如何自定义一个分页指示器,并添加到Launcher里面使用,滑动切换功能后续再讲。默认的蓝色分页指示器~(PS:新建的QQ群,有兴趣可以加... 阅读全文

posted @ 2013-08-01 19:57 泡泡糖 阅读(11624) 评论(6) 推荐(4) 编辑

摘要:前面已经写过Hotseat分析的文章,主要是讲解如何在Launcher里面配置以及修改Hotseat的参数。今天主要是讲解一下如何在Hotseat里面的Item显示名称。这个小问题昨天折腾了半天,最后幸亏我亲爱的女朋友大人提醒了我,才想到原因。在此十分感谢我女朋友大人的提醒,幸好她不是做程序员,不然我就要失业了O(∩_∩)O哈哈~(PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434)默认Hotseat里面的元素都没有标题1、Hotseat隐藏文件夹标题 刚开始想解决这个问题的想法是找到按钮对象生成的地方,修改一下就好了。因为我上次分析Hotseat的时候,记... 阅读全文

posted @ 2013-07-25 09:31 泡泡糖 阅读(20493) 评论(1) 推荐(2) 编辑

摘要:本来想分析AppsCustomizePagedView类,不过今天突然接到一个临时任务。客户反馈说机器界面的图标很难点击启动程序,经常点击了没有反应,Boss说要优先解决这问题。没办法,只能看看是怎么回事。今天分析一下Launcher启动APP的过程。从用户点击到程序启动的流程,下面针对WorkSpace上的快捷图标点击启动流程进行分析。(如果分不清WorkSpace是什么或者不知道快捷方式和其他图标区别,请看我前面的Launcher分析文章)PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434 下面我们先看看Launcher启动APP的大概流程:(鉴于很多转... 阅读全文

posted @ 2013-07-13 23:37 泡泡糖 阅读(11596) 评论(1) 推荐(2) 编辑

摘要:接着上一篇文章,继续分析AllAPP列表界面。上一篇文章分析了所有应用列表的界面构成以及如何通过配置文件修改属性。今天主要是分析PagedViewWithDraggableItems类,因为在我们分析AppsCustomizePagedView之前,需要先了解PagedViewWithDraggableItems。这是因为他们是继承关系。我们先看看AppsCustomizePagedView的类继承关系。(以后博客的图片都会加上水印,因为发现很多转载文章的人把所有作者信息都删除了,鄙视这种行为 ╭∩╮(︶︿︶)╭∩╮)1、触摸拦截 从上面的类关系图我们可以看到,我们今天需要分析的Page... 阅读全文

posted @ 2013-07-11 12:32 泡泡糖 阅读(7346) 评论(1) 推荐(4) 编辑

摘要:今天主要是分析一下Launcher里面的所有应用列表。Android4.0 Launcher的所有应用列表跟2.X比较大的区别就是多了Widget的显示。下面会详细分析Launcher里面有关所有应用列表配置和代码分析。1、AllApp列表配置文件配置AllAPP应用列表界面的配置文件是\res\Layout\apps_customize_pane.xml文件。AllAPP列表使用了一个TabHost组织了两个页面(全部应用和Widget),通过界面上面的TabHost进行切换。下面是TabHost的配置和AllAPP界面配置,我这里需要把Widget部分功能取消,因为我做的Launche.. 阅读全文

posted @ 2013-07-10 16:57 泡泡糖 阅读(14589) 评论(2) 推荐(2) 编辑

摘要:本来打算分析CellLayout的源码,不过因为它们之间是容器包含关系,所以打算先把PagedView分析。PagedView代码很多,今天主要是分析跟核心功能相关的代码。PagedView主要实现一个功能——页面滑动。 PagedView继承了ViewGroup类,是一个容器类,可以包含第三方的View,实际上Launcher里面的PagedView主要就是包含了CellLayout的显示。对于一个View类来说,我们触摸屏幕界面,首先会触发View类的onInterceptTouchEvent()回调函数。这个函数负责处理原始的消息驱动,决定是拦截消息还是传给上层的View。这个涉及... 阅读全文

posted @ 2013-07-05 19:32 泡泡糖 阅读(13921) 评论(0) 推荐(8) 编辑

摘要:今天主要是分析一下Launcher里面的快捷方式导航条——HotSeat,一般我们使用手机底下都会有这个导航条,但是如果4.0的Launcher放到平板电脑里面运行,默认是没有HotSeat的,刚好我这里的运行环境类似平板,系统默认把HotSeat去掉了。办法,只能自己想办法把它弄出来,所以今天主要是分析如何在你Launcher上添加HotSeat以及分析HotSeat实现。 Hotseat配置是通过配置文件控制的,一般来说,你需不需要Hotseat只要在配件文件里面写一下就OK,不过Hotseat有一个比较麻烦的地方,就是需要注意横屏还是竖屏。默认竖屏的时候,Hotseat是屏幕底下的... 阅读全文

posted @ 2013-07-04 21:14 泡泡糖 阅读(12213) 评论(1) 推荐(0) 编辑

摘要:上面一篇文章说了Launcher是如何被启动的,Launcher启动的过程主要是加载界面数据然后显示出来,界面数据都是系统APP有关的数据,都是从Launcher的数据库读取,下面我们详细分析Launcher如何加载数据。在Launcher.java的onCreate()方法里面,调用了开始加载数据接口://Edited by mythou//http://www.cnblogs.com/mythou///加载启动数据if (!mRestoring) { mModel.startLoader(this, true);}mModel是LauncherModel的对象,由此可见,数据加载... 阅读全文

posted @ 2013-07-02 17:32 泡泡糖 阅读(11331) 评论(4) 推荐(3) 编辑

摘要:前面两篇文章都是写有关Launcher配置文件的修改,代码方面涉及不多,今天开始进入Launcher代码分析。我们开机启动Launcher,Launcher是由ActivityManager启动的,而ActivityManager是由systemserver启动。原创博文,转载请标明出处:http://www.cnblogs.com/mythou/p/3157452.html1、Launcher进程启动过程可以由下面图看到Launcher进程是如何被创建启动:Activity Manager通过发送Intend来启动Launcher。//Edited by mythou//http://www 阅读全文

posted @ 2013-06-27 13:02 泡泡糖 阅读(17887) 评论(1) 推荐(2) 编辑

摘要:上一篇文章说了如何修改Android自带Launcher2的默认界面设置(http://www.cnblogs.com/mythou/p/3153880.html)。 今天主要是说说Launcher里面图标、布局、壁纸等的设置问题。毕竟我们一般修改Launcher,这些都是需要修改的地方,也是比较容易修改的部分。按照效果图(效果图在上一篇文章),分开说明如何修改,以及里面涉及的逻辑分析。原创博文,转载请标明出处:http://www.cnblogs.com/mythou/p/3155692.html1、图标大小和标题大小 Android原生图标大小都是通过配置文件设置,配置文件路径是/... 阅读全文

posted @ 2013-06-25 23:38 泡泡糖 阅读(26449) 评论(1) 推荐(4) 编辑

摘要:最近工作都在修改Launcher,所以打算把分析源码和修改源码的过程记录下来,最近会写一些关于Launcher的分析和修改博文。因为我是修改4.0.3的Launcher,所以后面文章里面的Launcher都是基于Android4.0.3的Launcher2修改。Launcher源码比较多,而且里面应用了很多设计模式,要把它分析清楚要花不少精力,网上也有一些零碎的分析文章,不过关于修改的文章不多。所以打算写一些分析和修改Launcher结合的文章。原创博文,转载请标明出处:http://www.cnblogs.com/mythou/p/3153880.html 今天主要是分析修改Launche. 阅读全文

posted @ 2013-06-24 23:17 泡泡糖 阅读(45840) 评论(8) 推荐(5) 编辑