
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 · 1160 阅读 · 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 · 603 阅读 · 0 评论 -
Launcher3 壁纸解析(二)动态壁纸自定义
一.什么是动态壁纸动态壁纸是通过自定义Service继承WallpaperService,实现onCreateEngine方法,在该方法中返回Engine,该Engine中可以绘制图像,视频,Gif动画等来呈现壁纸二.自定义Service1.自定义Service继承WallpaperServicepublic class LiveWallpaperService extends ...原创 2019-02-22 09:47:09 · 713 阅读 · 0 评论 -
Launcher3 壁纸解析(一) 设置默认壁纸
一.Launcher中设置默认壁纸在Launcher的onCreate方法中调用下面方法实现privatevoidsetDefaultWallpaper(){WallpaperManagerwm=(WallpaperManager)getSystemService(Context.WALLPAPER_SERVICE); try{...原创 2019-02-20 17:24:14 · 1637 阅读 · 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 · 1022 阅读 · 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 · 923 阅读 · 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 · 808 阅读 · 0 评论 -
Launcher3 数据库初始化分析
一.初始化创建launcher.db数据库,数据库里创建了两张表,分别是favorites和workspaceScrrens。1.其表结构为: 2.内容为,举例:3.字段含义: _id:用于标识区分各个应用图标,是表favorites的主键,当添加数据时通过generateNewId使_id值增加。 title:在WorkSpace(HotSeat中一...原创 2019-01-14 16:52:58 · 1784 阅读 · 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 · 577 阅读 · 0 评论 -
Launcher3 UI初始化 布局的动态设置
一.Launcher3中各个控件的大小在不同的设备上,初始化大小是不一样的,为了屏幕适配,需要动态的去设置布局大小,布局大小的设置是在Launcher3的onCreate方法中,调用了mDeviceProfile.layout(this, false),代码是:public void layout(Launcher launcher, boolean notifyListeners) { ...原创 2019-01-11 14:26:08 · 507 阅读 · 0 评论 -
Launcher3 RemoteView介绍和应用
一.RemoteView是什么RemoteView并不是View,它的父类是Object,它主要应用在通知栏和桌面小部件。二.RemoteView的使用RemoteView中的点击事件传递通过PengdingIntent实现,PengdingIntent实现启动Activity、启动Service和发送广播flags的模式有:三.RemoteView的原理Remot...原创 2019-01-10 16:01:47 · 625 阅读 · 0 评论