官方下载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{
return TypedValue.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不刷新的问题
在方法名上加注解@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))
}