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

测试页面启动速度:

adb shell am start -W [packageName]/[AppstartActivity]

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中添加<item name="android:windowDrawsSystemBarBackgrounds">false</item>属性

如何解决当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))

}

断点续传下载的核心

1.请求服务器看是否支持range请求

httpConnection.setRequestProperty(

            "Range",        "bytes=" + lastStart + "-" + downloadThreadInfo.getEnd());

2.随机写入文件

    raf.seek(lastStart);

Glide使用圆角和centerCrop冲突

https://cxyxy.blog.csdn.net/article/details/97399089


关于webview

1.Android WebView 因重定向无法正常goBack()

解决方案https://zhuanlan.zhihu.com/p/93521070但是这样会产生另一个问题,导致回到跟页面的时候再点击返回又返回到了重定向之前的链接,除非你想直接关闭整个页面.解决办法:把loadUrl改为webview.goBack(),有几个重定向的链接,就返回几次.Over

2.原生app调用h5的js方法调用不到是因为js方法

没有挂到window对象上关于h5和原生互调可以参考http://t.zoukankan.com/Free-Thinker-p-7390459.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容