咱们好,本篇文章会继续给咱们同享一些Android常见的开发技巧,希望能对读者有所协助。
一. 经过仓库快速定位体系版别
这个当地首要同享咱们两个个技巧,经过问题仓库简快速定位当时体系版别:
1. 快速区别当时体系版别是Android10以下,仍是Android10及以上;
首要Android10及以上引入了一个新的服务Service:ActivityTaskManagerService
,将本来ActivityMangerService
本来担任的一些功能拆分给了前者,所以当你的问题仓库中呈现了ActivityTaskManagerService
相关的字眼,那肯定是Android10及以上了。
咱们在Android9及以下的源码中是找不到这个类的。
2. 快速区别当时体系版别是Android12以下,仍是Android12及以上;
这个就得借助Looper
了,给咱们看下Android12上Looper
的源码:
Looper分发消息的中心方法loop()
,现在会转发给loopOnce()
进行处理,这个可是Android12及以上特有的,而Looper又是Android处理消息必要的一环,是咱们问题仓库的源头祖宗,类似于下面的:
所以这个技巧相信仍是十分有必要的:当你从问题仓库中一看有loopOnce()
这个方法,那必定是Android12无疑了。
二. 完成按钮距离的一种奇特方法
最近看了一个新的项目代码,发现该项目完成按钮之间、按钮与顶部底部之间距离完成了,用了一种我之前没了解过的方法,于是这儿同享给咱们瞧瞧。
这儿就以TextView和屏幕顶部间设置距离为例,初始的作用如下:
接下来咱们来进行一步步改造:
1. 首要TextView是有一个自界说的xml布景:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:height="70dp"
android:gravity="center_vertical">
<shape>
<solid android:color="#ff0000" />
</shape>
</item>
</layer-list>
中心就是界说了android:height
和android:gravity
这两个特点,来确保咱们自界说布景在组件中的高度及居中位置。
2. 其次将布局中TextView
的特点调整下:
- 首要
height
特点必定要调整为wrap_content
,确保最终TextView按钮的高度的丈量终究取minHeight
设置的特点值和布景设置的高度这两者的最大值;
- 其次还要设置
minHeight
最小高度特点,注意必定要比布景设置的高度值大,确保能和屏幕顶部产生边距作用;
- 最终要设置字体的位置为笔直居中,确保字体位置和布景不发生错位;
经过上面处理,作用就出来了:
其实上下空白的部分都是属于TextView,设置点击事情也会被呼应,这算是其中的缺陷之一,当时也可能在事务场景中认为这是一种合理体现。
上面完成的逻辑和TextView的丈量逻辑密不可分,感兴趣的同学可以看下这块代码,这儿就不带咱们进行一一分析了:
三. logcat快速查看当时跳转的Activity类信息
忘了是在哪里看到的了,只要日志过滤start u0
,就可以看到每次跳转的Activity信息,十分的有协助,既不需求改动事务层,也不需求费事的安装一些插件啥的。
使用时记得将logcat右边的过滤条件置为,否则你就只能在左面切换到体系进程去看了:
这儿咱们演示下作用:
1. 跳转到Google浏览器
logcat界面会输出:
会打印一些跳转到包名类名等相关信息。
2. 跳转到体系设置界面
logcat输出:
可以说start u0
仍是相当好用的。
四. 项目gradle配置最好指向同一本地路径
最近开发中经常存在需求一次性检索多个项目的场景,而这样项目的gradle版别都是相同的,没啥区别。但每打开一个项目就得从头走一遍gradle下载流程,下载速度又是蜗牛相同的慢。
所以强烈建议咱们,本地提前预备好几个gradle版别,然后经过设置将项目的gradle指向本地已存在好的gradle:
这样项目第一次打开的速度将是十分快的,而且按道理来说相同gradle版别的项目指向同一本地路径,也可以完成缓存同享。猜的。
假如项目好好的编译运转着,忽然没网了,可能会提示一些找不到依赖库资源啥的,其实你本地都已经缓存好依赖库资源了,只需求设置下off-mode,不走网络直接经过本地资源编译运转即可:
总结
本篇文章首要是介绍了Android开发一些技巧,感觉都是项目中挺常用到的,算是我最近一个月收获的吧,后续预备研讨研讨compose了,毕竟看到咱们们都在搞这个,仰慕的口水都流了一地了哈哈。
历史文章
两个Kotlin优化小技巧,你绝对用的上
Kotlin1.9.0-Beta,它来了!!
Kotlin1.8新增特性,进来了解一下
聊聊Kotlin1.7.0版别供给的一些特性
聊聊kotlin1.5和1.6版别供给的一些新特性
优化@BuilderInference注解,Kotlin高版别下了这些“棘手”!
@JvmDefaultWithCompatibility优化小技巧,了解一下~