Hello,world


  • Home

  • Archives

Launcher3抽屉型桌面改造成横屏桌面

Posted on 2019-01-02
Google Launcher3默认是抽屉型的桌面,到Android 8.0依然是没有这样的功能。这样的功能是手机厂商提供给我们的,不得不说,横向排列的桌面更适合国人的使用习惯,可能是使用iphone的习惯吧。 好,那我们如何实现这样功能呢?其实并不会太难的。 在Launcher加载流程里,我们知道桌面的数据是在LauncherModel的 LoaderTask完成加载的 我们在loadAndBindAllApps()方法调用之后添加一 ...
Read more »

Launcher3负一屏的定制开发

Posted on 2019-01-02
左一屏可能有的小伙伴不清楚什么是左一屏,或者是负一屏。以我的了解,在智能手机还没有普及的时候,最早的左一屏的概念是来自Apple 苹果电脑的dashboard操作面板,如下图 后来iphone, Android也都使用了这个概念,相对PC而言,手机上的dashboard相对的精简了许多。如图 以上图片来源于Apple官网 用过Google亲儿子手机的小伙伴都会发现,原生的Launcher并没有左一屏的功能,而像最近新出的手机都带了这个 ...
Read more »

Launcher3桌面开发简述

Posted on 2019-01-02
引言当用户买了一台新的Android手机时,除了安装常用的应用,换壁纸,换主题也是用户一个高频的操作。如果我们占据了用户的主入口,那么我们就拥有了全世界,咳咳,一不小心暴露了野心了。 目的为什么要介绍Launcher呢?Launcher源码里没有使用流行的开源库,都是活用Android API,优秀的稳定性,高性能都很值得我们学习。复杂的自定义View,炒鸡复杂的拖拽处理等等,都是我们向高级Android进阶所要掌握的知识。 值得注 ...
Read more »

Android消息机制

Posted on 2019-01-02
好理解 Android 的消息机制,就是要理解 Handler 机制,Android中,Handler虽然不是四大组件,但用的次数也不比Activity,Service等四大组件少。虽然大家都知道怎么使用Handler,但是我们不能仅仅停留在使用的层面,对其机制的分析会加深我们对Android的理解。当然了,最终的目的就是在面试的时候碾压面试官,本系列将会对Handler机制做详细的分析。 Handler 消息机制主要包含三个内容, ...
Read more »

HandlerThread源码分析

Posted on 2019-01-02
HandlerThread顾名思义,HandlerThread它是一个Thread,是Google为提高开发者效率封装的一个类。与普通的Thread不同的是,它有一个成员属性 Looper,而Looper是用来干嘛的前一章节我们已经介绍过了。也就是说,我们的HandlerThread具有了Looper的功能。如果你有看过HandlerThread的源码,你会发现它非常短,一百多行代码。那,我们先来看线程最核心的run方法 @Overri ...
Read more »

IntentService源码分析

Posted on 2019-01-02
IntentService跟HandlerThread一样,也是Google为了方便开发者使用Service封装的一个类。 特点 通过Context的startService(Intent),创建一个工作线程处理异步请求 异步的,串行处理每个Intent请求,处理完后自行停止Service 不瞎bb了,源码能解释一下 源码分析先看一下构造和成员属性, 123456789101112131415public abstract cla ...
Read more »

Handler常见应用场景和常见问题分析

Posted on 2019-01-02
Handler应用场景根据前几篇的分析,根据实际的开发,我们可以总结出以下Handler的使用场景 最简单的消息发送主线程使用Handler, 主线程里或子线程里发送消息,或延迟发送消息的方式更新UI如,启动应用时Splash页面的延迟2,3秒后,跳转到主页面加载完页面的各个控件后,再加载线程下载图片,最后更新图片等等 private static final int WHAT_UPDATE_ICON = 1; private Han ...
Read more »

Battery-historian电量优化

Posted on 2018-10-14
Battery HistorianBattery Historian工具能监测一台设备在一段时间内的电量消耗。在整个系统级别,该工具能将系统的日志可视化为电量相关事件的网页展示在一个特定的app级别里,这个工具提供大量的数据,来帮助开发者识别耗电应用的行为。 Install 需要Docker环境支持,Install Docker 并运行. 运行 Battery Historian 镜像,这个镜像需要翻墙下载,没有翻墙的可以找找国内的镜像 ...
Read more »

Launcher3桌面加载流程分析-2

Posted on 2018-10-03
上文Launcher3 桌面加载流程分析(上),我们看到LauncherModel 创建LoaderTask加载数据,我们继续往下看 LoaderTask创建LoaderTask,flags为 PagedView.INVALID_RESTORE_PAGE值-1001, 我们看它的run方法是如何执行的。 private class LoaderTask implements Runnable { LoaderTask(Cont ...
Read more »

Launcher3桌面加载流程分析-1

Posted on 2018-10-02
省略一万字前奏如果大家没有源码,不介意的话,可以参考Launcher3-N-Folder 开发中 主入口LauncherLauncherAppStateLauncher的onCreate里比较长,我们依次取代码片段来分析,看oncrate方法的这一段,初始化LauncherAppState public void onCreate() { ... LauncherAppState app = LauncherAppSta ...
Read more »
1…3456

pickerX

53 posts
14 tags
© 2021 pickerX
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4