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)