Android实际开发中小技巧
官方下载gradel地址
https://services.gradle.org/distributions/
Gradle版本和gradle插件版本对应关系,不知道的请查看官方文档
https://developer.android.com/studio/releases/gradle-plugin
adb常用指令:
Monkey测试 : adb shell monkey -p 包名 -s 500 -v 10000
查看内存信息:adb shell dumpsys meminfo cn.kdqbxs.reader
kotlin,自定义view写法
class TagView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0)
: LinearLayout(context, attrs, defStyleAttr) {
dp转px
fun dp2Pixel(dp:Float):Float{
returnTypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, Resources.getSystem().displayMetrics)
}
判断触发移动事件的最短距离
ViewConfiguration.get(context).getScaledTouchSlop()
/** Distance in pixels a touch can wander before we think the user is scrolling */ 它获得的是触发移动事件的最短距离,如果小于这个距离就不触发移动控件,如viewpager就是用这个距离来判断用户是否翻页
//清除fragment状态,避免被系统回收后空白
savedInstanceState?.putParcelable("android:support:fragments", null)
//解决启动图片在虚拟按键手机上会变形闪动
theme中添加
如何解决当onDatasetChanged方法包含异步网络调用Android时,小部件ListView不刷新的问题
【Android实际开发中小技巧】在方法名上加注解@SuppressLint("CheckResult")
安卓富文本
https://www.cnblogs.com/qynprime/p/8026672.html
Android使用gradle依赖管理、依赖冲突终极解决方案
https://www.jianshu.com/p/f902b3298657
http://www.cocoachina.com/cms/wap.php?action=article&id=52166
遍历json中的key-value
if (var3?.keys() !=null) {//遍历所有自定义参数
val var4 = var3.keys()
while (var4.hasNext()) {
val var5 = var4.next()as String
bundle.putString(var5, var3.getString(var5))
this.loge("$var5 === ${var3.getString(var5)}")
}
}
kotlin单例写法
https://www.jianshu.com/p/6dde590d253d
小米手机安装charles证书
https://segmentfault.com/a/1190000011573699
布局转成Bitmap
https://www.jianshu.com/p/b9f28463ab9c
AndroidStudio占用C盘空间太大
https://www.jb51.net/article/165391.htm
修改缓存地址
https://blog.csdn.net/xx326664162/article/details/52004676
微信分享图片压缩方法
https://www.jianshu.com/p/17351de12515
只适配armeabi-v7a/armeabi就完了
https://juejin.im/post/5eae6f86e51d454ddb0b3dc6
自定义View如何获取原生属性
for (k in 0 until attributeSet.attributeCount) {
System.out.println(attributeSet.getAttributeName(k)+ "" + attributeSet.getAttributeValue(k))
}
推荐阅读
- android第三方框架(五)ButterKnife
- 深入理解Go之generate
- Android中的AES加密-下
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 带有Hilt的Android上的依赖注入
- android|android studio中ndk的使用
- Android事件传递源码分析
- RxJava|RxJava 在Android项目中的使用(一)
- Android7.0|Android7.0 第三方应用无法访问私有库
- 深入理解|深入理解 Android 9.0 Crash 机制(二)