android launcher
文章平均质量分 91
Red风信子
厚积而薄发
展开
-
launcher点击,加载,拖动图标过程一
首先,我们需要去LauncherApplication里面看一下,因为这里没有两个成员变量对我们这一讲非常重要,它们就是?12publicLauncherModel mModel;publicIconCache mIconCache;在LauncherApplic原创 2016-04-27 17:38:51 · 773 阅读 · 0 评论 -
Android 4.0 Launcher2源码分析——Workspace滑动
本文来自http://blog.csdn.net/chenshaoyang0011 转载请申明文章出处!文中如有纰漏之处,望不吝指教~~~欢迎讨论,共同学习~~~Launcher桌面的一大功能就是支持左右滑动,这样的功能在现在的应用中使用非常广泛,并且有很多实现的方式,可以通过使用Fragment来实现也可以通过自定义的控件来实现。Launcher采用了后者,这一功能的实现在Wor转载 2016-12-16 14:39:45 · 476 阅读 · 0 评论 -
Android 4.0 Launcher2源码分析——桌面快捷图标的拖拽
本文来自http://blog.csdn.net/chenshaoyang0011 转载请申明文章出处!通过上一篇文章Android4.0Launcher2源码分析(五)——Workspace的滑动中,已经了解了Launcher的ViewTree中各层所负责的工作,在DragLayer中就负责对快捷图标和AppWidget等组件的拖拽工作。桌面的滑动和图标的拖拽是两项独立的工作,正常情况下转载 2016-12-17 10:31:19 · 1106 阅读 · 0 评论 -
android M Launcher之数据库实现
前面一系列文章我们分析了LauncherModel的工作过程,它会把数据绑定到桌面上。从今天开始我们来分析下Launcher的数据来源即Launcher数据库的实现。一个完整的数据库实现都应该包括两方面的内容,第一是数据库实体SQLiteOpenHelper的实现,第二是数据库ContentProvider的实现。数据库的实体包含了数据库实体以及相关的操作,ContentProvider负责数原创 2016-12-17 11:12:56 · 1460 阅读 · 0 评论 -
Android 4.0 Launcher2源码分析——启动过程分析
Android的应用程序的入口定义在AndroidManifest.xml文件中可以找出:[html] xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.launcher"> ... android:name="com.android.lau原创 2016-12-15 17:18:08 · 255 阅读 · 0 评论 -
说说Android桌面(Launcher应用)背后的故事(四)——揭秘Workspace
前面说了Layout最主要的职责就是负责item的布局和空间的分配,这一节我们继续来看看CellLayout的父亲控件Workspace。手机的桌面是由几个屏幕的,你可以任意滑动的。这个布局就是一个Workspace。Launcher的Workspace主要的职责就是处理多个屏幕之间的滑动和壁纸的添加。这里先提下,我们知道DragLayer包含了Workspace,Workspace又包含转载 2017-04-17 18:22:24 · 486 阅读 · 0 评论 -
说说Android桌面(Launcher应用)背后的故事(四)——揭秘Workspace
前面说了Layout最主要的职责就是负责item的布局和空间的分配,这一节我们继续来看看CellLayout的父亲控件Workspace。手机的桌面是由几个屏幕的,你可以任意滑动的。这个布局就是一个Workspace。Launcher的Workspace主要的职责就是处理多个屏幕之间的滑动和壁纸的添加。这里先提下,我们知道DragLayer包含了Workspace,Workspace又包含转载 2017-04-18 10:39:25 · 393 阅读 · 0 评论 -
说说Android桌面(Launcher应用)背后的故事(五)——桌面壁纸的添加
上一篇中,我们了解了Workspace是如何处理多个CellLayout之间的滑动的。这篇,将记录如何将壁纸添加到桌面,以及Workspace如何处理滑动的时候,壁纸的滑动。壁纸的添加,也是调用系统自带的,用如下方式调用:[java] view plain copy//调用系统自带壁纸选择功能,ACTION_SET_WALLPAPER为选择的转载 2017-04-18 10:42:07 · 569 阅读 · 0 评论 -
Android 4.0 Launcher2源码分析——导入eclipse进行调试
本文来自http://blog.csdn.net/chenshaoyang0011 转载请申明文章出处! 由于需要研究Android 4.0Launcher2的源码,必要的时候我们需要对代码进行调试,所以我们需要能够运行自己修改后的Launcher。由于Launcher是Android内置的应用,因此,可以通过搭建Android源码开发环境来进行调试和开发,这些工作只能在转载 2017-04-18 10:44:19 · 280 阅读 · 0 评论 -
Android 4.0 Launcher2源码分析——主布局文件
本文来自http://blog.csdn.net/chenshaoyang0011 转载请申明文章出处!Android系统的一大特色是它拥有的桌面通知系统,不同于iOS的桌面管理,Android有一个桌面系统用于管理和展示APP以及桌面Widget等。Android提供一个默认的桌面应用,当然我们也可以使用第三方的桌面应用。Android的Launcher的源码在 \packag转载 2017-04-18 11:00:20 · 310 阅读 · 0 评论 -
Android 4.0 Launcher2源码分析——启动过程分析
本文来自http://blog.csdn.net/chenshaoyang0011 转载请申明文章出处!文中如有纰漏之处,望不吝指教~~~欢迎讨论,共同学习~~~Android的应用程序的入口定义在AndroidManifest.xml文件中可以找出:[html] view plain copymanifest xmln转载 2017-04-18 12:36:16 · 445 阅读 · 0 评论 -
Android 4.0 Launcher2源码分析——Launcher内容加载详细过程
Launcher在应用启动的时候,需要加载AppWidget,shortcut等内容项,通过调用LauncherModel.startLoader(),开始加载的工作。launcherModel中加载好的内容会通过LauncherModel.Callbacks接口的回调函数将数据传给需要的组件,那先来看看Callbacks的定义:[java] view plain co转载 2017-04-18 15:00:47 · 314 阅读 · 0 评论 -
Android 4.0 Launcher2源码分析——Workspace切换AllApps流程
进入All Apps界面是通过点击Hotseat中的allAppsButton触发事件,通过前面的分析,已经知道在setupViews()方法中,就为button设置好了onTouchListener:[java] view plain copyprivate void setupViews() { ......转载 2017-04-18 15:42:44 · 761 阅读 · 0 评论 -
说说Android桌面(Launcher应用)背后的故事(三)——CellLayout的秘密
CellLayout的设计主要为了存放大小不一的控件。为了更好的控制item的添加和删除,选择直接继承ViewGroup来实现该控件。我们长按桌面的时候,有两种情况,一种是我们按的是一个item,还有一种是我们按的是一个空的位置。这里,就有一个问题。1、我怎么知道当前按下的位置上是空白区域还是item呢?2、就算我知道了当前的位置坐标,我又如何知道当前的坐标属于哪个单元格呢转载 2017-04-17 15:56:19 · 599 阅读 · 0 评论 -
说说Android桌面(Launcher应用)背后的故事(一)——揭开她神秘的面纱
最近由于项目需要自己定制一套管理系统,遂想到了Android的启动器,下来了源码,一编译到处是错,查了查原因,原来是引用了自家的成员,他们家开发的就是方便,想直接用就直接用。于是下载了个包,终于错误少了一大半。但是还有一些错误,主要是引用了一些不存在的资源。于是改了改,基本可以运行了。但是,问题来了,一眼望去,红色叉叉是不见了,但是革命依然不容乐观,一个人我认识,但是一下子成千上百个人出现转载 2017-04-17 16:06:35 · 303 阅读 · 0 评论 -
Android 4.0 Launcher2源码分析——Launcher内容加载详细过程
本文来自http://blog.csdn.net/chenshaoyang0011 转载请申明文章出处!文中如有纰漏之处,望不吝指教~~~欢迎讨论,共同学习~~~Launcher在应用启动的时候,需要加载AppWidget,shortcut等内容项,通过调用LauncherModel.startLoader(),开始加载的工作。launcherModel中加载好的内容会通过Laun转载 2016-12-16 11:10:35 · 386 阅读 · 0 评论 -
Android Launcher分析和修改4——初始化加载数据
上面一篇文章说了Launcher是如何被启动的,Launcher启动的过程主要是加载界面数据然后显示出来,界面数据都是系统APP有关的数据,都是从Launcher的数据库读取,下面我们详细分析Launcher如何加载数据。在Launcher.java的onCreate()方法里面,调用了开始加载数据接口://加载启动数据if (!mRestoring) { mM转载 2016-05-19 23:05:51 · 420 阅读 · 0 评论 -
launcher点击,加载,拖动图标过程二
并且把我们mAllAppsList清空,这个mAllAppsList我们前面说过,这里不再赘述,然后?12345678910111213141516171819202122原创 2016-04-27 17:44:02 · 3638 阅读 · 0 评论 -
launcher点击,加载,拖动图标过程三
创建一个拖动的Bitmap这个和刚才的mDragOutline不同,这个Bitmap透明度、大小等等有变化的。然后就是<preclass="brush:java;"> mDragController.startDrag(b, dragLayerX, dragLayerY, source, child.getTag(),原创 2016-04-27 17:47:44 · 1457 阅读 · 0 评论 -
Android Launcher拖拽原理分析
在Android4.0源码自带的Launcher中,拖拽是由DragController进行控制的。基本流程是相应的View在检测到用户操作后进行判断,若可以触发拖拽,则设置自身的相应状态,然后将待拖拽对象的Bitmap对象、当前位置、拖拽源、待拖拽对象等信息传给DragController的startDrag方法启动拖拽。接下来,DragLayer的onInterceptTouchEvent原创 2016-04-27 20:16:41 · 2295 阅读 · 0 评论 -
android手把手教你开发launcher(一)
auncher,也就是android的桌面应用程序。下图是android2.3的launcher应用程序: 接下来我们要开发一个自己的launcher,使其替代系统的默认launcher。怎样使我们的应用程序成为一个launcher?下面我们就新建一个叫做SAOLauncher的工程,具体步骤略。创建完工程后整个目录结构如下图: 现在我们的Andro原创 2016-04-28 09:32:22 · 3451 阅读 · 0 评论 -
android手把手教你开发launcher(二)
预备知识: GridView的使用 \ 改写BaseAdapter 列出已经安装的应用程序是作为launcher比不可少的功能。下面我们就讲解怎样将应用程序列出来。程序运行后的样子如下: 一. 修改main.xml,在其中添加一个GridView用来显示应用程序列表。修改后如下:[html] view plain copy print?原创 2016-04-28 10:17:44 · 2225 阅读 · 0 评论 -
android手把手教你开发launcher(三)
1. 监听GridView的onItemClick事件设置一个监听器是为了当gridView的某项被点击时,会有一个回调函数通知我们。我们调用appsGrid.setOnItemClickListener(listener); 设置一个监听器appsGrid.setOnItemClickListener(listener)中的listener是一个接口,其类型为:android.wid原创 2016-04-28 10:25:28 · 483 阅读 · 0 评论 -
android手把手教你开发launcher(四)
第四课:显示widget1. 获取widget信息获取widget其实非常简单,我们只需要发送一个请求到系统,系统就会打开widget的列表,然后我们选择一个即可。代码如下:?2. 添加widget的view到layout中当选择一个widget后会通过onActivityResult 通知到activity,widget的信息被包含在 In原创 2016-04-28 10:29:42 · 1165 阅读 · 0 评论 -
android手把手教你开发launcher(五)
一、显示壁纸显示壁纸也是launcher必不可少的功能,下面我们看看如何让我们开发的launcher来显示壁纸。要在我们的activity里显示一个壁纸非常简单(包括动态壁纸也如此),我们只需要定义一个theme使其继承自Android:Theme.Wallpaper,然后在activity中使用这个theme就ok了。在res/valuse下面增加一个xml文件,其名称为st原创 2016-04-28 10:35:09 · 1626 阅读 · 0 评论 -
Android更改桌面应用程序launcher的两种方式
版权声明:本文为博主原创文章,未经博主允许不得转载。launcher,也就是Android的桌面应用程序。下图是我正在使用的魅族手机的launcher应用程序: 接下来我们要开发一个自己的launcher,使其替代系统的默认launcher。怎样使我们的应用程序成为一个launcher? 首先我们要有一个自己的Android应用,在这里,我使用最原创 2016-04-28 10:45:13 · 5859 阅读 · 0 评论 -
Android 4.0 Launcher源码分析系列(一)
从今天起傻蛋打算做一个系列文章,对最新的Android 4.0 系统中的Launcher,也就是Android 4.0原生的桌面程序,进行一个深入浅出的分析,从而引领Android系统的编程爱好者对 Launcher的设计思想,实现方式来做一个研究,从而能够通过这个实例最掌握到目前世界领先的设计方法,同时在程序中加入我们的一些新的实现。众所周知,对一些优秀源代码的分析,是提高编程水平的一条便捷的方原创 2016-04-28 10:59:03 · 3161 阅读 · 0 评论 -
Android 4.0 Launcher源码分析系列(二)
【51CTO.com 2月2日独家特稿】上一节我们研究了Launcher的整体结构,这一节我们看看整个Laucher的入口点,同时Laucher在加载了它的布局文件Laucher.xml时都干了些什么。我们在源代码中可以找到LauncherApplication, 它继承了Application类,当整个Launcher启动时,它就是整个程序的入口。我们先来看它们在AndroidManif原创 2016-04-28 11:11:43 · 410 阅读 · 0 评论 -
Android 4.0 Launcher源码分析系列(三)
首先傻蛋先画了个图来再来阐述一下WorkSpace的结构。如下图:点击查看大图桌面的左右滑动功能主要是在PagedView类中实现的,而WorkSpace是PagedView类的子类,所以会继承PagedView中的方法。当我们的手指点击WorkSpace时,首先就会触发PageView中的onInterceptTouchEvent()方法,会根据相应的条件来判断是否对To原创 2016-04-28 11:19:48 · 471 阅读 · 0 评论 -
Android Launcher分析和修改1——Launcher默认界面配置(default_workspace)
最近工作都在修改Launcher,所以打算把分析源码和修改源码的过程记录下来,最近会写一些关于Launcher的分析和修改博文。因为我是修改4.0.3的Launcher,所以后面文章里面的Launcher都是基于Android4.0.3的Launcher2修改。Launcher源码比较多,而且里面应用了很多设计模式,要把它分析清楚要花不少精力,网上也有一些零碎的分析文章,不过关于修改的文章不多。所转载 2016-05-18 19:05:52 · 585 阅读 · 0 评论 -
Android Launcher分析和修改3——Launcher启动和初始化
前面两篇文章都是写有关Launcher配置文件的修改,代码方面涉及不多,今天开始进入Launcher代码分析。我们开机启动Launcher,Launcher是由Activity Manager启动的,而Activity Manager是由system server启动。原创博文,转载请标明出处:http://www.cnblogs.com/mythou/p/3157452.html转载 2016-05-19 22:39:54 · 1214 阅读 · 0 评论 -
说说Android桌面(Launcher应用)背后的故事(二)——应用程序的添加
上篇中,讲到了第一个功能中需要获取应用程序的信息,然后添加到桌面。这里,先记录下如何获取Android中的应用程序信息。一、调用系统快捷方式列表[java] view plain copy Intent pickIntent = new Intent(Intent.ACTION_PICK_ACTIVITY); pickIntent.pu转载 2017-04-17 16:13:36 · 374 阅读 · 0 评论