Launcher3
关于Launcher的技术点
网络卷毛
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android9.0 Launcher启动Activity详解(三)
一.应用进程绑定到AMS 前文我们知道Zygote进程执行了ActivityThread的main方法,我们看下main方法的实现 public static void main(String[] args) { initializeMainlineModules(); Process.setArgV0("<pre-initialized>"); Looper.prepareMainLooper();原创 2020-12-25 18:17:13 · 1258 阅读 · 3 评论 -
Android9.0 Launcher启动Activity详解(二)
一.Process向Zygote发送创建进程请求 framework/base/core/java/android/os/Process.java public static ProcessStartResult start(@NonNull final String processClass, @Nullable final String niceName,原创 2020-12-23 10:21:28 · 683 阅读 · 0 评论 -
Launcher3 壁纸解析(二)动态壁纸自定义
一.什么是动态壁纸 动态壁纸是通过自定义Service继承WallpaperService,实现onCreateEngine方法,在该方法中返回Engine,该Engine中可以绘制图像,视频,Gif动画等来呈现壁纸 二.自定义Service 1.自定义Service继承WallpaperService public class LiveWallpaperService extends ...原创 2019-02-22 09:47:09 · 845 阅读 · 0 评论 -
Launcher3 壁纸解析(一) 设置默认壁纸
一.Launcher中设置默认壁纸 在Launcher的onCreate方法中调用下面方法实现 privatevoidsetDefaultWallpaper(){ WallpaperManagerwm=(WallpaperManager)getSystemService(Context.WALLPAPER_SERVICE); try{ ...原创 2019-02-20 17:24:14 · 1755 阅读 · 0 评论 -
Launcher3 定制桌面行列数
一.Launcher3默认显示行列数是通过device_profiles.xml这个文件配置的,文件内容是 <profiles xmlns:launcher="http://schemas.android.com/apk/res-auto" > <profile launcher:name="Super Short Stubby" ...原创 2019-01-09 17:56:23 · 1128 阅读 · 0 评论 -
Launcher3 Widget拖拽到桌面的流程分析
一:交互图 长按Launcher进入OverView Panel界面,点击WIDGETS进入Widgets界面,拖拽widgets到Launcher桌面,显示widget到桌面,完成widget的显示操作 二:逻辑思路 1.WidgetsContainerView为显示所有Widgets的View,初始化在Launcher的onCreate方法中调用setupViews方法初始化 2...原创 2019-01-09 17:40:54 · 1019 阅读 · 0 评论 -
Launcher3 怎么创建一个Widget
参考博客https://www.cnblogs.com/skywang12345/p/3158310.html 一.Widget是什么 Launcher中除了app,还有一些小部件作为各个app的延伸功能 二.Widget的创建 1,创建Widget工程 2.编辑AndroidManifest.XML文件 <receiver android:name=".wi...原创 2019-01-10 14:14:57 · 994 阅读 · 0 评论 -
Launcher3 数据库初始化分析
一.初始化创建launcher.db数据库,数据库里创建了两张表,分别是favorites和workspaceScrrens。 1.其表结构为: 2.内容为,举例: 3.字段含义: _id:用于标识区分各个应用图标,是表favorites的主键,当添加数据时通过generateNewId使_id值增加。 title:在WorkSpace(HotSeat中一...原创 2019-01-14 16:52:58 · 1938 阅读 · 2 评论 -
Launcher3 UI初始化分析
一. 入口Launcher类,在其onCreate方法中初始化 @Override protected void onCreate(Bundle savedInstanceState) { if (DEBUG_STRICT_MODE) { StrictMode.setThreadPolicy(new StrictMode.ThreadPoli...原创 2019-01-14 13:18:15 · 626 阅读 · 0 评论 -
Launcher3 UI初始化 布局的动态设置
一.Launcher3中各个控件的大小在不同的设备上,初始化大小是不一样的,为了屏幕适配,需要动态的去设置布局大小,布局大小的设置是在Launcher3的onCreate方法中,调用了mDeviceProfile.layout(this, false),代码是: public void layout(Launcher launcher, boolean notifyListeners) { ...原创 2019-01-11 14:26:08 · 576 阅读 · 0 评论 -
Launcher3 RemoteView介绍和应用
一.RemoteView是什么 RemoteView并不是View,它的父类是Object,它主要应用在通知栏和桌面小部件。 二.RemoteView的使用 RemoteView中的点击事件传递通过PengdingIntent实现,PengdingIntent实现启动Activity、启动Service和发送广播 flags的模式有: 三.RemoteView的原理 Remot...原创 2019-01-10 16:01:47 · 686 阅读 · 0 评论
分享