![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android - 学习总结
文章平均质量分 58
Android开发中用到知识点总结
孔小乐
这个作者很懒,什么都没留下…
展开
-
Android - ViewBinding学习使用
枯燥又没什么意义,因此针对这个问题也出了很多开源库来解决,例如:Butter Knife(黄油刀)。插件,当时用的时候真是感觉像发现了新大陆一样,非常好用。功能之后,Android Studio会自动为我们所编写的每一个布局文件都生成一个对应的Binding类。之间进行绑定,并不算是非常方便。但是,当你的gradle升级到新版本的时候,会显示下面的提示。标签引入的布局在某些情况下可以减少一层布局的嵌套,而更少的布局嵌套通常就意味着更高的效率。进行重命名处理,而且经常会引用错误的布局文件,导致运行崩溃。原创 2023-08-22 09:31:28 · 1229 阅读 · 0 评论 -
Android 应用冷启动优化
结果用了接近800ms,震惊不已,后面发现是debug版本的原因,改为release后400ms,降低了一半。实际测试中,第二次和第三次时间其实是差不多的,都有大一点有小一点的,这个在我的测试代码中优化不明显。通过设置线程的优先级,我们可以改变线程在调度器中的竞争情况,从而影响其执行顺序。等生命周期方法都是在App开始绘制第一帧之前执行的,因此在这些生命周期函数中,耗时的操作应该后移或者放到子线程处理。在测试用,将模拟的耗时操作放到了子线程中执行,后面又给子线程加上了一个最低的优先级。原创 2023-08-17 17:31:46 · 518 阅读 · 0 评论 -
Android 广播发送流程分析
***//***/在广播队列中定义了两个处理列表,一个是并发处理列表,一个是有序处理列表。= 0;+ (isFg?上面的三个方法是上面源码中出现的,根据intent是否含有来判断是前台广播还是普通后台广播,如果是前台广播返回前台广播处队列。如果是普通后台广播返回后台广播处理队列。获取队列后,将发给【动态注册且接受无序广播的广播接收者】的广播通过函数添加到该队列的并发处理列表中。将发给【动态注册接受有序广播的广播接收者】和【静态注册的广播接收者】的广播通过。原创 2023-08-15 16:10:39 · 1217 阅读 · 0 评论 -
AndroidTV 获取焦点View放大效果实现方式
电视开发最常见的就是view获焦后要有放大效果,让用户明显看到。这里总结两个实现方法,以后遇到其他的再补充。1、res文件夹下新建animator文件夹,然后新建focus_scale_anim.xml文件。上面分别用focus3和focus2分别用了xml和代码的方式,运行效果一致。2、然后在xml布局文件中,把需要放缩的view加上该动画。2、有焦点变化的时候进行放缩。3、或者在代码中实现也可以。1、注册焦点变化监听。原创 2023-08-03 19:57:08 · 681 阅读 · 0 评论 -
Android - 系统时间
表示系统开机到当前的时间总数,单位是毫秒,但是,当系统进入深度睡眠(CPU休眠、屏幕休眠、设备等待外部输入)时间就会停止,但是不会受到时钟缩放、空闲或者其他节能机制的影响。Intent.ACTION_DATE_CHANGED (日期改变广播):系统日期自动改变不会发送该广播,用户手动更改日期,只有修改为之后日期时才会发生该广播,否则不发送。Intent.ACTION_TIME_CHANGED (时间改变广播):系统时间自动改变不会发送该广播,用户手动更改日期或时间均发送该广播。原创 2023-01-07 21:23:38 · 1055 阅读 · 0 评论 -
Android ANR时间
【代码】Android ANR时间。原创 2022-09-22 13:53:35 · 751 阅读 · 0 评论 -
Android Service异常销毁处理(START_NOT_STICKY、START_STICKY和START_REDELIVER_INTENT)
值为常量3,service如果被干掉,会自动重启,Android系统会再次将Service在被杀掉之前最后一次传入onStartCommand方法中的Intent再次保留下来并再次传入到重新创建后的Service的onStartCommand方法中,这样我们就能读取到intent参数。:值为常量1,service如果被干掉,会自动重启,但是onStartCommand回调方法的Intent参数为null。:值为常量0,START_STICKY的兼容版本,但不保证服务被kill后一定能重启。原创 2022-09-22 10:56:13 · 4450 阅读 · 0 评论 -
Android 内存泄漏、性能分析常用工具
这些全新的分析工具能够提供关于应用 CPU、内存和网络 Activity 的实时数据。您可以执行基于样本的函数跟踪来记录代码执行时间、采集堆转储数据、查看内存分配,以及查看网络传输文件的详情。它提供用于记录系统级和应用程序级跟踪的服务和库,本机+ Java堆分析,使用SQL分析跟踪的库以及基于Web的UI以可视化和探索多GB跟踪。:“Memory Analyzer Tool”,一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。原创 2022-09-22 10:04:24 · 5089 阅读 · 0 评论 -
Android dumpsys 常用命令
1、dumpsys activity //查询AMS服务相关信息,相当于 ActivityManagerService.dump()2、dumpsys window //查询WMS服务相关信息3、dumpsys cpuinfo //查询CPU情况4、dumpsys meminfo //查询内存情况5、dumpsys package//查询PMS相关信息6、dumpsys gfxinfo//查询图像相关信息Android dumpsys 简述原创 2022-09-21 19:20:19 · 3125 阅读 · 0 评论 -
Android Gradle中配置修改生成应用apk名称的方法(包含版号、生成时间等)
在app下gradle文件中,加入下面代码,位置和defaultConfig同级,里面可以加生成信息,比如时间、版本号、应用类型release、debug。原创 2022-09-08 19:45:10 · 2068 阅读 · 0 评论 -
Android 使用AlarmManager实现每日定时任务触发
一、需求:最近遇到一个需求,需要每天早上5:00触发执行一个任务,类似闹铃提醒,使用AlarmManager来实现。二:实现AlarmManager的基本使用大家可参考后面的文章,写的非常详细,在实现的过程中主要对闹钟的类型,及相应的triggerTime(也有starttime)设置花了点时间研究了下。1、闹钟的类型AlarmManager.RTC_WAKEUP表示闹钟在睡眠状态下会唤醒系统并执行提示功能,该状态下闹钟使用绝对时间,即当前系统时间,状态值为0;AlarmManager原创 2022-05-18 14:06:59 · 6889 阅读 · 0 评论 -
Android 全局属性的保存方式-SystemProperty
一、需求说明有个需求,应用有个功能依赖一个属性开关,如果关了每次进应用都会弹出一个提示,这个提示有个选项叫做【不再提示】,设置不在提示后,只要不断电,每次再进应用,不会弹出,但是断电后,需要重新弹。二、实现方法这里是用SystemProperty来实现的,自定义sys开头系统属性。先了解下SystemProperty属性的规则:"ro."开头的属性, 一旦设置,就不能再被改变;非 “ro.” 开头的属性值可以被修改。例如:ro.his.prduct_model="KKK"这种产品型号。原创 2022-03-19 20:44:42 · 979 阅读 · 1 评论 -
Android 全局属性的保存方式-SettingsProvider
需求说明:开发过程经常会保存一些全局属性提供给其他应用读取,这骈文章把平时用到属性保存方式总结下。1、SettingsProvider使用方式:1、定义出常量public static final String LIGHT_SWITCH_PROP = "light_switch";public static final int LIGHT_SWITCH_ON = 0;public static final int LIGHT_SWITCH_OFF = 1;2、属性值获取方式public原创 2022-03-14 14:49:38 · 5031 阅读 · 0 评论 -
Android 通用控件封装集合
开发过程中,很多界面显示都是重复的,可以提前封装好,提高开发效率,这里记录下自己遇到的觉得封装比较好的轮子地址:1、自定义Dialog(通用)android:自定义Dialog(通用)2、加载数据时页面状态切换封装Android项目实战 加载数据时页面状态切换封装过程...原创 2022-02-24 14:59:26 · 1593 阅读 · 0 评论