Android 编码小技能

1、Timeout waiting to lock artifact cache

处理:Invalidate Caches/Restart

2、git分支如果已经rebase过

处理:git rebase --abort

3 Android profiler

"Allocation" 这一列显示的是它的实例数量

"Native Size"类对象所引用的 Native 对象(蓝色节点)所消耗的内存大小

"Shallow Size"对象本身消耗的内存大小

“Retained Size”是shallow Size的总和(单个对象占用内存*此对象的个数),也就是该对象被GC之后所能回收到内存的总和 ,下图中所有橙色节点的大小

4、刷新git分支

git remote update origin --prune

5、将Android SDK工具生成的HPROF文件生成一个标准的格式

hprof-conv -z <infile> <outfile>

6 、undo commit和revert的区别

undo commit 实际是reset --soft 不涉及index的回退,如果还需要提交,直接commit即可.

更推荐git reset  mixed 会保留源码,只是将git commit和index 信息回退到了某个版本

revert 是回滚某个 commit ,当次提交的内容抹掉,后续的commit保留

  • undo commit之后:撤回(抹掉)了Log里的修改记录,但是,Local Changes留有修改记录
  • revert commit之后:撤回(抹掉)了Local Changes的修改记录,但是,Log留有修改记录

7、Android studio-logcat界面,设备信息一行有时消失

 处理方法:View Mode 改成Float,再改成Dock Pinned

8、CertificatePinner okhttp证书锁定

9、rxjava2操作符

map:类型转换,例如网络数据类型解析转换

concat:不交错发射两个或多个obserable事件,并且只有当前一个observable终止(oncomplete)后才会订阅下一个observable。例如先读取缓存再通过网络请求数据

flatmap:将一个发射数据的observable变换为多个observables,然后将它们发射的数据合并后放到一个单独的observable。例如多个网络请求依次依赖请求

zip:多个observable的数据结合为一个数据源再发射出去。例如实现多个接口数据共同更新ui

interval:轮询。实现心跳间隔任务

10、无线连接

操作步骤:

将 Android 设备与要运行 adb 的电脑连接到同一个局域网,比如连到同一个 WiFi。将设备与电脑通过 USB 线连接。

应确保连接成功(可运行 adb devices 看是否能列出该设备)。

让设备在 5555 端口监听 TCP/IP 连接:

开发者选项,点允许usb调试

adb tcpip 5555

找到设备的 IP 地址

11、查看Android设备的CPU架构信息

adb shell

getprop|grep arm

12、concatDelayError onError事件推迟到其他观察者发送事件结束

13、反射修改private对象属性

try {
    Field field=POSBluetoothAPI.class.getDeclaredField("bluetoothManager");
    field.setAccessible(true);
    field.set(POSBluetoothAPI.getInstance(activity),null);
} catch (NoSuchFieldException e) {
    e.printStackTrace();
}catch (IllegalAccessException e) {
    e.printStackTrace();
}

14、android studio中文乱码

在Gradle Scripts -> build.gradle中的如下下图位置添加:

android{compileOptions.encoding="GBK"}

或者

compileOptions.encoding="GBK"

15、排查依赖库版本冲突

首先我们需要知道哪些库存在着冲突
点击Terminal 输入 gradlew -q app:dependencies 回车即可将app中所依赖的库展示出来

16、获取TextView文本实际宽度

float textWidth = textView.getPaint().measureText(text) + PaddingLeft + PaddingRight;

17、submodule 拉取

git submodule update

18、git本地分支关联远程分支

git branch --set-upstream-to=origin/remote_branch  your_branch

其中,origin/remote_branch是你本地分支对应的远程分支;your_branch是你当前的本地分支。

19、无线调试

1.手机USB线连接到PC端,并打开手机USB调试;
2.在CMD窗口输入:adb tcpip 5555;
3.可以断开USB数据线与PC端的连接;
4.在CMD窗口再输入:adb connect ip:5555 ,即可与PC端进行远程连接啦。
5.断开无线连接:adb disconnect ip

20、复制android studio ctrl+F1警告提示内容

鼠标左键点到你的提示信息,然后按住alt键,再鼠标左键点中信息,然后ctrl+v就可以了

21、清理日志,输入 adb logcat -c

      进行相关操作

     输入adb logcat -d > e:/b.log  在E盘下会创建一个b.log,储存了刚才的设备操作log

22、启动自带的模拟器Open the vm device error:\\.\hax_vm00, ec:2

当网上其他方法都不管用,山穷水尽时,请打开Windows虚拟机监控程序平台功能和虚拟机平台,win专业版用户还要关闭hyper-v功能,家庭版不用

具体操作:控制面板→程序和功能→启用或关闭Windows功能→找到相应功能打开或关闭→确定

23、封装方法有对容器集合进行删除、添加、遍历操作时,考虑加锁

24、setClickable(false)失效

SetClickable(false)方法要在setOnClickListener()方法之后

25、Debug.waitForDebugger方法会让手机进程保持阻塞状态,直到连上调试器后,才会继续执行后续的代码

26、代码里没有手动设置 Accept-Encoding = gzip ,那么 OkHttp 会自动处理 gzip 的解压缩;反之,你需要手动对返回的数据流进行 gzip 解压缩

27、git pull或push时,提示Caused by: java.net.SocketException: Unexpected end of file from server

解决:Setting–>Version Control -->Git–》勾选上Use credential helper

28、夜间模式设置

int mode = AppCompatDelegate.MODE_NIGHT_YES : AppCompatDelegate.MODE_NIGHT_NO
AppCompatDelegate.setDefaultNightMode(mode)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值