Launcher
文章平均质量分 71
月亮弯弯2013
android developer
展开
-
Android 类似未读短信消息图标显示的实现分析
这里面主要的工作在是launcher里面完成的. 关于系统里面类似未读短信的具体处理流程如下,原理 一个应用要实现这个效果,就要在自己有未读的消息的时候发送一个广播告诉系统我有未处理的事件了(例如:短信,电话和邮件等),同时将相关的信息进行保存,比如应用的名称(这里指的是ComponentName)和未处理事件的数量.系统将提升用户有待处理的事件交给Launcher去处理,launcher会接收转载 2017-03-06 15:35:06 · 3109 阅读 · 1 评论 -
Android ODEX介绍
ODEX是安卓上的应用程序apk中提取出来的可运行文件,即将APK中的classes.dex文件通过dex优化过程将其优化生成一个·dex文件单独存放,原APK中的classes.dex文件会保留的。这样做可以加快软件的启动速度,预先提取,减少对RAM的占用,因为没有odex的话,系统要从apk包中提取dex再运行。所谓Odex,是由android软件中的classes.dex原创 2015-11-19 22:45:40 · 5698 阅读 · 0 评论 -
android 触摸事件处理流程说明
我们经常需要处理触摸事件,但是有时候会出现一些奇怪的bug,比如有时候会检测不到ACTION_MOVE和ACTION_UP,我决定下决心写个测试的小程序,来研究一个触摸事件从上往下是怎么传递和处理的。先说下大概的流程吧,这个应该在很多博客中都有讲解:当一个事件来临的时候,会先传递给最外层的ViewGroup(比如LinearLayout,FrameLayout),如果这个ViewGroup原创 2015-11-23 16:33:17 · 613 阅读 · 0 评论 -
android launcher3中的常用类介绍
LauncherModel:从名字我们可以看出他跟数据有关系的,保存了桌面运行时的状态信息,也提供了读写数据库的API,他有一个内部类LoaderTask,桌面启动从数据库中读取数据并把图标和小工具添加上去的时候用的就是他。BubblTextView:图标都是基于他,不过奇怪的是,他是继承自TextView,我之前一直以为是一个线性布局,上面放图片,下面放文字。DragContro原创 2015-11-23 16:55:16 · 1307 阅读 · 0 评论 -
android 4.4 Launcher2源码分析--Workspace滑动
Launcher桌面的一大功能就是支持左右滑动,这样的功能在现在的应用中使用非常广泛,并且有很多实现的方式,可以通过使用Fragment来实现也可以通过自定义的控件来实现。Launcher采用了后者,这一功能的实现在Workspace来完成。首先来看一下Workspace的继承关系:从图中可以看出Workspace是PagedView的子类,而实际上滑动功能的实现是在P原创 2015-11-22 20:18:25 · 702 阅读 · 0 评论 -
Android 网络编程使用httpClient批量上传文件并监听进度
运行效果图: AsyncTask+HttpClient并实现上传进度监听我曾在《 Android 网络编程之使用HttpClient 批量上传文件 》一文中介绍过如何通过 HttpClient 实现多文件上传和服务器的接收。在上一篇主要使用 Handler+HttpClient 的方式实现文件上传。这一篇将介绍使用 AsyncTask+HttpClient 实现文件上传并监听上传进度。监控进原创 2015-10-11 18:05:55 · 1329 阅读 · 0 评论 -
Android细说binder机制
Android深入浅出之Binder机制一 说明 Android系统最常见最难搞明白的就是Binder了,很多很多的Service就是通过Binder机制来和客户端通讯交互的。所以搞明白Binder的话,在很大程度上就能理解程序运行的流程。 我们这里将以MediaService的例子来分析Binder的使用:l ServiceManager,这是Android OS的整个服务的管原创 2015-10-11 21:45:27 · 900 阅读 · 0 评论 -
android fragment生命周期深度理解
把条目添加到动作栏你的fragment们可以向activity的菜单(按Manu键时出现的东西)添加项,同时也可向动作栏(界面中顶部的那个区域)添加条目,这都需通过实现方法onCreateOptionManu()来完成。你从fragment添加到菜单的任何条目,都会出现在现有菜单项之后。Fragment之后可以通过方法onOptionsItemSelected()来响应自己的菜单项被选择的事件。你也原创 2015-10-10 23:08:45 · 652 阅读 · 0 评论 -
activity fragment 传值交互
我们为什么要用Fragment?使用Fragment可以在一个Activity中实现不同的界面。Fragment与Fragment之间的动画切换,远比Activity与Activity之间的动画切换变化方式多。很多时候,我们通过使用一个Activity,切换多个Fragment。本次博客,主要列举一下Fragment与它的Activity之间进行数据交换的方式。1.Fragment中通过getAc原创 2015-10-10 22:55:12 · 747 阅读 · 0 评论 -
eclipse没有显示buildproject的解决方案
在eclipse中选择 Project 菜单下面有个 Build Automatically 把他前面的钩去掉 Build Project 就可以用了Build Automatically 的意思是——》 自动编译,选择的功能就是,你在修改代码保存的时候,就编译了。这个根据个人爱好习惯来选择是否自动build原创 2015-03-21 16:25:50 · 4391 阅读 · 0 评论 -
android 显示和隐藏输入法键盘用法介绍
在个别时候,需要强制隐藏Android输入法键盘,如当前键盘正在显示,这个时候点击了侧滑面板,就要强制隐藏输入法键盘。网上常见的方法有:1、InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);imm.toggleSoftI原创 2015-03-21 15:42:08 · 1990 阅读 · 0 评论 -
android Editable和string的区别介绍
Editable 是一个接口类型,对它的实例化对象作出任何改变都是对原有的实例化对象操作的,内存地址还是原来的那个。 而对 String 的任何改变都是相当于重新实例化了一个 String 类出来,相当于重新分配了内存地址。 所以说 Editable 是可变的,String 是不可变的了;因为 Editable 变了之后还是原来的 Editable 对象,String 变了之后就已经不是原原创 2015-03-21 15:49:53 · 4322 阅读 · 0 评论 -
Android 签名打包应用介绍
Andriod应用程序如果要在手机或模拟器上安装,必须要有签名! 1.签名的意义 为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性(如自动更新不会因为版本不一致而无法安装)。2.签名的步骤 a.创建key b.使用步骤a中转载 2015-03-15 15:49:07 · 604 阅读 · 0 评论 -
Android 一个应用启动另一个应用的说明
我们Android 开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用。一般我们知道了另一个应用的包名和MainActivity的名字之后便可以直接通过如下代码来启动:Intent intent = new Intent(Intent.ACTION_MAIN);intent.addCategory(Intent.CA原创 2015-01-21 10:04:48 · 1309 阅读 · 0 评论 -
android Launcher应用之CellLayout的设计
CellLayout的设计主要为了存放大小不一的控件。为了更好的控制item的添加和删除,选择直接继承ViewGroup来实现该控件。我们长按桌面的时候,有两种情况,一种是我们按的是一个item,还有一种是我们按的是一个空的位置。这里,就有一个问题。1、我怎么知道当前按下的位置上是空白区域还是item呢?2、就算我知道了当前的位置坐标,我又如何知道当前的坐标属于哪个单元格呢转载 2015-12-12 17:33:44 · 3002 阅读 · 0 评论 -
Android 中运用单例模式的方法说明
概念: Android中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。 单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、原创 2015-11-20 20:41:51 · 1017 阅读 · 0 评论 -
android launcher3桌面快捷方式分析
背景一般情况下,为了让用户更方便的打开应用,程序会在桌面上生成一些快捷方式。本来呢,如果是原生的桌面,其实是十分简单,直接调用系统相关的API就行了。但是众多的系统厂商以及众多第三方自己定制的桌面(Launcher),导致在适配、兼容方面存在很多问题。比如,有些桌面无法删除快捷方式(比如小米),有些桌面无法生成快捷方式(比如锤子),有些系统无法更新桌面图标(比如华为荣耀6)。在原创 2016-08-11 14:28:31 · 4333 阅读 · 1 评论 -
android 使用MaskFilter面具工具介绍
MaskFilter我们不妨把它叫做面具,就是给所要画的东西套上一个面具,让你的要画的东西达到你想要的效果,它的使用是安装在画笔上使用的,也就是paint,通过改变目标的alpha的值来达到目的,它本身没什么用,要看它的两个子类BlurMaskFilter,EmbossMaskFilter,一个是让目标部分模糊不清,一个是让目标部分有凹凸的水印图案。BlurMaskFiltersd原创 2016-09-09 10:52:23 · 6310 阅读 · 0 评论 -
android launcher 文件夹美化类似小米Launcher
原生自带的桌面文件夹样式及其简单,没有iphone那种可以显示文件夹内文件图标缩略图的功能,今天我们来简单的实现一个。效果如下: 从launcher源码中很容易变可以看出需要修改的文件,主要修改FolderIcon.Java这个文件。修改后的代码如下:[java] view plain copy print?public class Folder转载 2016-05-16 14:20:53 · 3009 阅读 · 0 评论 -
android launcher folder功能详解
AndroidICS4.0的文件夹和2.3的文件夹区别比较大,主要区别有: 一、android2.3的文件夹大小是固定的,4.0的文件夹大小是按照里面的元素大小决定的。 二、android2.3的文件夹图标是固定的文件夹的形式展示的,而4.0是从文件中取前3个的缩略图垂直展示在屏幕上的。估计谷歌怕侵犯苹果文件夹的知识产权,所以没有做成和苹果一样的效果。转载 2016-05-11 17:18:29 · 5194 阅读 · 4 评论 -
android queryIntentActivities如何寻找出某个intent是否可用
Finding out if an intent is availableSometimes you want to find if an application has registered for a certain intent. For example you want to check if a certain receiver is available and if you转载 2016-01-12 09:47:41 · 7297 阅读 · 0 评论 -
android launcher3拖放功能深入剖析
Launcherr有一个相对比较复杂的功能就是拖放功能,要深入了解launcher,深入理解拖放功能是有必要的,这篇blog,我将对launcher的拖放功能做深入的了解1.首先直观感受什么时候开始拖放?我们长按桌面一个应用图标或者控件的时候拖放就开始了,包括在all app view中长按应用图标,下面就是我截取的拖放开始的代码调用堆栈at com.android.launcher2.D原创 2015-12-04 16:22:43 · 804 阅读 · 1 评论 -
android Manifest.xml 中<original-package>标签的含义和作用
Manifest.xml 中 标签中package属性用于设置应 用程序的进程名,即在运行时使用ddms查看到的进程名。 标签用以设置应用 源码包名,即Java文件所在的源码程序包层次,android工程中真实的源代码层次结构。 中package属性若与的android:name值相同,配置组建时android:name属性值 可以使用".ClassName"形式。原创 2015-12-03 09:38:52 · 2086 阅读 · 0 评论 -
android launcher创建删除判断是否存在快捷方式
创建和删除快捷方式主要是Launcher完成的,我们只是把快捷方式的名称、图标、关联的activity信息传递给Launcher而已。 我们构造好了Intent信息后,将其以广播的方式发送出去,Launcher会帮忙完成创建、删除,并且会弹出一个Toast。1.下面是系统中Launcher的Manifest文件。从中可以看到它定义了创建和删除快捷方式的permi转载 2015-12-03 11:16:58 · 1058 阅读 · 0 评论 -
android Launcher3中的IconCache的剖析
在Launcher3中,IconCache是用来缓存应用图标缓存的。IconCache不仅会保存图标,还会保存应用的title, 还有应用的描述,我们可以看到缓存都是保存在mCache的HashMap中,key是ComponentName和UserHandleCompat组成的对象, Value是一个对象CacheEntry, CacheEntry的三个成员是图标,标题和应用描述。在Lau原创 2015-11-28 16:10:00 · 2462 阅读 · 1 评论 -
android launcher3拖拽事件响应解析长按事件处理
AndroidICS4.0版本的launcher拖拽的流程,基本和2.3的相似。就是比2.3写的封装的接口多了一些,比如删除类的写法就多了个类。等等。4.0的改变有一些,但是不是特别大。这个月一直在改动Launcher的缩略图的效果,4.0的缩略图的功能没有实现,还得从2.3的Launcher中摘出来。通过做这个缩略图对Launcher的模块有一点点了解,拿来分享一下Launcher拖拽的工作流程原创 2015-11-30 09:47:24 · 4100 阅读 · 0 评论 -
android launcher3将桌面较长的图标名称显示完整解决方案
android 如何将桌面较长的图标名称显示完整(有些APP的图标名称太长),androidapp1、请找到对应的res资源,修改styles.xml,将 0dp 4dp 4dp @dimen/app_icon_padding_top 4dp 13sp 改原创 2015-11-30 13:20:02 · 8070 阅读 · 1 评论 -
android launcher3修改内置的系统图标显示
/packages/apps/Launcher/res/xml/default_workspace.xml中记录了系统初始化或者恢复出厂设置时桌面上图标的排列。Launcher程序第一次运行完毕以后,会在/data/data/com.android.launcher/databases/launcher.db中创建记录,里面有所有当前的桌面图标。以后每次启动只会从这里读取桌面图标。原创 2015-11-28 16:55:07 · 3734 阅读 · 0 评论 -
android 多分辨率机型适配文件夹命名规则
假设有如下分辨率机器:800 x 4801024 x 6001024 x 7681280 x 8001920 x 12002048 x 1536总共六种类分辨率机器,如果按照dp为单位来细分可以分为几种呢?首先通过context.getResources().getDisplayMetrics().density获取到当前机器的屏幕密原创 2015-11-26 14:23:46 · 2590 阅读 · 0 评论 -
Android 多用户模式原理和实现介绍
我们可以感受到,在Android 4.2中的一个比较显著的改变就是加入了多用户的支持。因多用户手机专利早已被Symbian雇员注册,故 android官方的多用户切换目前仅支持平板设备。多用户模式的启用系统判断当前设备是否支持多用户模式的依据是配置文件config.xml中的config_multiuserMaximumUsers配置项。 其取值为整型,决定着当前设备支持的最大用户原创 2015-01-21 10:14:58 · 8993 阅读 · 0 评论 -
android应用仿QQ使用fragment来实现
最近反复研究日常经典必用的几个android app,从主界面带来的交互方式入手进行分析,我将其大致分为三类。今天记录第一种方式,即主界面下面有几个tab页,最上端是标题栏,tab页和tab页之间不是通过滑动切换的,而是通过点击切换tab页。早期这种架构一直是使用tabhost+activitygroup来使用,随着fragment的出现及google官方也大力推荐使用fragment,后者大有代转载 2015-01-27 17:19:38 · 2099 阅读 · 0 评论 -
Android 学习心得体会
在学习Android开发的过程中遇到了不少的问题,所幸的是最终经过上网查询都得到了解决。现在将我在学习Android开发过程中遇到的一些问题及解决的方法整理如下。1.R.java不能实时更新 问题描述:在res文件中新增的变量不能在R.java中实时的显示出来。 解决方法:选择菜单栏的“Project”,勾选“Build Automatically”选项。2.L原创 2014-04-26 16:22:32 · 3281 阅读 · 0 评论 -
Android Menu菜单的编写及事件响应
Android Menu菜单的编写及事件响应效果图: package com.example.optionmenu;import com.example.optionmenu.R.id;import com.example.optionmenu.R.string;import android.os.Bundle;import转载 2014-04-11 18:41:11 · 3168 阅读 · 0 评论 -
Android LoadData和loadDataWithBaseURL
在写WebView时,感觉LoadUrl太浪费流量,而且加载起来有点慢,就考虑用其它的方法来实现。在加载页面时,如果只加载数据,页面模板提前写好放到项目中,这样就可以来更快的加载页面,用户体验会好些。 如果不用loadUrl,省下的就只有LoadData和loadDataWithBaseURL了,下面来说下LoadData和loadDataWithBaseURL 的用法;原创 2014-05-09 20:28:04 · 1753 阅读 · 0 评论 -
关于Android ListView组件中android:drawSelectorOnTop含义
When set to true, the selector will be drawn over the selected item. Otherwise the selector is drawn behind the selected item. The default value is false.android:drawSelectorOnTop="true" 点击某一条记录,颜色转载 2014-04-07 18:56:31 · 821 阅读 · 0 评论 -
中国天气网api(json格式)
http://m.weather.com.cn/data/101050101.html 这个接口返回的格式如下[plain] view plaincopyprint?{ "weatherinfo": { "city": "哈尔滨", // 城市中文名 "city_en": "haerbin", // 城市英文名转载 2014-04-20 21:20:46 · 4692 阅读 · 0 评论 -
android:textAppearance
xml布局里面设置文字的外观: 如“android:textAppearance=“?android:attr/textAppearanceLargeInverse”这里引用的是系统自带的一个外观,?表示系统是否有这种外观,否则使用默认的外观。 可设置的值如下: textAppearanceButton/ textAppearanceInverse/ textApp转载 2014-04-18 20:49:19 · 989 阅读 · 0 评论 -
Android DAO
DAO(Data Access Object) 数据库操作对象设计模式的简称,是javaEE中MVC设计模式中Model层中的用于对数据库的访问的那一层。DAO包中包括五个重要的部分,分别如下:1)数据库连接类2)VO类,即实体类,每一个类对应数据库的每一张表。3)DAO接口。4)DAO实现类,实现具体的数据存储。5)DAO工厂类,这个工厂设计模式我就不说了吧。总的来说就是原创 2014-04-18 18:30:38 · 2631 阅读 · 0 评论 -
android overridePendingTransition
实现两个 Activity 切换时的动画。在Activity中使用有两个参数:进入动画和出去的动画。注意1、必须在 StartActivity() 或 finish() 之后立即调用。2、而且在 2.1 以上版本有效3、手机设置-显示-动画,要开启状态//实现淡入浅出的效果startActivity(new Intent(MainActivity.this,S原创 2014-05-05 15:56:46 · 741 阅读 · 0 评论 -
AudioManager的详细内容
AudioManager类位于android.Media 包中,该类提供访问控制音量和钤声模式的操作。通过getSystemService(Context.AUDIO_SERVICE)方法获得AudioManager实例对象。AudioManager audiomanage = (AudioManager)context.getSystemService(Context.AUDIO翻译 2014-03-21 15:41:23 · 869 阅读 · 0 评论