- 博客(13)
- 收藏
- 关注
原创 Settings学习总结之搜索模块
那么ContentProvider 数据从何而来,我们回过头看一下 performIndexing 方法,可以发现在该方法中通过Intent获取provider,全局搜索一下SearchIndexablesContract.PROVIDER_INTERFACE,发现配置为 android.content.action.SEARCH_INDEXABLES_PROVIDER,根据这个action我们进行全局搜索,可以找到Settings模块有配置对应的provider。以TopLevelSettings为例。
2025-03-28 16:55:28
608
原创 Java 代理模式 与 hook 学习总结(一)
Java 代理模式关于代理模式,举个例子,小明要买菜,一般是不会直接找农民买,而且去菜市场,菜市场除了卖菜,还卖水果,菜市场就是代理,光说有点不太好理解,看示例代码//首先抽象一个接口,定义一个卖菜的动作public interface Action { void maicai();}//创建一个类去实现接口,实现卖菜的动作public class NongMin implements Action{ @Override public void maicai() {
2022-03-03 19:25:47
797
原创 java 反射学习总结
开发中又时会遇见,需要调用其它方法类中 private 私有的方法或者参数,或者其它包里方法类里的方法情况,这个时候无法直接调取,需要用到反射去获取,直接实践,首先创建一个方法类,里面设置一些参数public class Person { public String a; public int b; private int c; private String d; public Person() { } private Person(int c
2022-02-25 17:46:05
331
原创 android Activity启动流程(一)
当我们在桌面点击app和app内部启动Activity时都会调用到Activity中的startActivityForResult方法public void startActivityForResult(@RequiresPermission Intent intent, int requestCode, @Nullable Bundle options) { //开始启动根Activity页面,一般情况mParent都为空,除非类似根Activity为TabAct
2022-02-16 16:19:01
1717
原创 android AMS学习(一)
ActivityManagerService是android中非常重要的一个类,管理着四大组件的开启与关闭,是android进阶路上必须学习了解的模块,我们先从启动流程开始了解跟前面了解的SystemUI一样,也是在SystemServer中启动//SystemServer /** * The main entry point from zygote. */ public static void main(String[] args) { new Sy
2022-02-16 16:17:37
1616
原创 SystemUI学习总结(三)
前面学习了SystemUI中状态栏模块相关内容,接下来学习锁屏模块相关内容,锁屏模块可以大致分为两个部分,一个是密码解锁,一个是页面加载,密码解锁是由KeyguardBouncer类控制,页面加载是在StatusBar中加载,个人认为页面之所以在StatusBar中加载是因为很多内容与状态栏重合先从开机启动流程开始,手机开机后会启动SystemServer,后续调用startSystemUi方法 public static void main(String[] args) { Lo
2022-01-29 10:50:42
520
1
原创 SystemUI学习总结(二)
上次我们研究了常态显示下的状态栏,这篇我们来研究下拉后状态栏,页面是status_bar_expanded.xml我们将下拉后的状态栏拆分来看,首先看QS快捷控制面板数据获取是再QSTileHost中获取 @Override public void onTuningChanged(String key, String newValue) { ... final List<String> tileSpecs = loadTileSpecs(mConte
2021-11-27 18:03:17
619
原创 SystemUI学习总结(一)
systemUI是android非常重要的一部分,我们先看systemUI的启动流程SystemUI启动流程手机开机的时候,通过驱动来启动SystemUIService,执行SystemUIApplication中的startServicesIfNeeded方法/** * Makes sure that all the SystemUI services are running. If they are already running, this is a * no-op. Thi
2021-11-16 20:02:43
736
原创 Settings学习总结(二)
上次讲到了一级菜单栏数据加载,在学习过程中发现一个有趣的问题,在获取一级菜单栏列表数据时并没有获取summary值,而且在Settings模块的清单文件中,有部分一级菜单栏并没有定义summary,但是在列表中却显示出了summary值通过查看源码以及日志追踪,发现跟SummaryLoader.java有关,我们看源码final List<DashboardCategory> categories = getCustomizedCategoriesFromAll(mCategoriesNam
2021-11-12 17:29:28
483
原创 Settings学习总结(一)
个人对settings一些学习总结,在介绍Settings一级菜单栏之前先讲解一下如何添加一级菜单栏,这样可以更好的理解后面的一级菜单栏显示流程添加一级菜单栏在Settings.java中添加代码public static class TestSettingsActivity extends SetttingsActvity{}添加了activity之后肯定是需要在清单文件中进行配置<activity android:name="Settings$TestSetti
2021-11-11 19:16:57
2297
1
原创 Android.mk 常用常量总结
LOCAL_PATH := $(call my-dir) 此变量表示源码所在目录,写法固定include $(CLEAR_VARS) 清除 除LOCAL_PATH变量外其它缓存变量LOCAL_MODULE 此变量表示模块名称LOCAL_MODULE_TAGS 此变量表示模块编译模式LOCAL_SRC_FILES 此变量包含构建系统生成模块时所用的源文件列表LOCAL_MODULE_CLASS 此变量表示标识所编译模块最后放置的位置LOCAL_MODULE_SUFFIX 此变量表示后缀名 在bui
2021-11-04 18:02:06
2980
1
原创 2021-09-24 记录ubuntu桌面常用指令
ubuntu桌面常用指令欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式
2021-09-24 14:19:24
272
原创 记录TabLayout字体太粗解决办法
记录TabLayout字体太粗解决办法项目用到TabLyaout,上司觉得字体太粗不好,翻了半天,typeface,textStyle,Spannable都试了,看到网上说TabLayout字体默认就是那么粗,只能通过字体类型进行修改,试了半天类型发现<item name="android:fontFamily">sans-serif-condensed</item>...
2019-01-31 16:24:17
387
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人