窥探layout执行过程
简书链接:窥探layout执行过程文章字数:70,阅读全文大约需要1分钟 可以看出来 线性布局的测量是setChildFrame确定孩子的取件,然后 调用layout从里面不断的找,然后各种 layout onlayout
androidstudio开发工具bug
简书链接:androidstudio开发工具bug文章字数:269,阅读全文大约需要1分钟 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354Element: class com.intellij.psi.impl.source.xml.XmlFileImpl because: different providers: SingleRootFileViewProvider{myVirtualFile=file://G:/companyproject/xxxx/app/src/main/res/layout/view_recyclerview_index_sort.xml, content=VirtualFileContent{size=936}}(111d0b39);...
databindbug之CannotaccessandroidarchlifecycleViewModelStoreOwner
简书链接:databindbug之CannotaccessandroidarchlifecycleViewModelStoreOwner文章字数:106,阅读全文大约需要1分钟这个bug是让我很无语,更新了gradle和开发工具导致的,暂时只能无视它了。 唉,有时候真的在犹豫,到底要不要放弃databind,因为bug实在太多,有时候出现问题导致浪费我大量时间,很不爽。
插件化的新方式把插件apk的elementsField添加到系统的BaseDexClassLoader中去
简书链接:插件化的新方式把插件apk的elementsField添加到系统的BaseDexClassLoader中去文章字数:205,阅读全文大约需要1分钟模板代码 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 String cachePath = context.getCacheDir().getAbsolutePath(); String apkPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/plugin.apk"; DexClassLoader dexClassLoader = new DexClassLoader(apkPath, cachePath, cachePath, context.getClassLoader()); ...
线程死锁
简书链接:线程死锁文章字数:273,阅读全文大约需要1分钟 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 private static void deathLock() { new Thread(new Runnable() { @Override public void run() { synchronized (object) { System.out.println("线程1 拿了锁1"); try { Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch...
从逆向又转回来谈谈链表和数引出来的问题StringBuilder内部原理以及手写StringBuilder
简书链接:从逆向又转回来谈谈链表和数引出来的问题StringBuilder内部原理以及手写StringBuilder文章字数:905,阅读全文大约需要3分钟 为什么要手写?有这么一个需求,我在开发逆向工具的时候,做了一个功能叫hook stringBuilder,和hook stringBuffer,另外我也需要打印堆栈,也需要调试数据,我发现使用字符串”xx”+”xx”进行打印的时候内部实际上使用stringbuffer进行添加的,那么我如果hook了又要知道到底hook了什么,那么就陷入了一个死循环 ,而且还需要逃避toString 也就想所有toString hook 但是hook了又不知道到底哪里调用了,这就麻烦了, 解决堆栈死循环问题就...
androidstudiogradle设置代理的几种方式以及解决没网无法找到jcenter等依赖问题
简书链接:androidstudiogradle设置代理的几种方式以及解决没网无法找到jcenter等依赖问题文章字数:439,阅读全文大约需要1分钟今天碰到一个奇怪的事情,就是gradle添加依赖竟然都不识别,通过jcenter上传 发现无法上传上去,Connection to http://127.0.0.1:1080 refused根据特征发现端口是1080,这就是sssr 也就是我自己以前改的,我只是现在不知道改回去了,每次开ssr挺麻烦的,还是搞成以前的比较好。 1234Execution failed for task ':video-player-manager:bintrayUpload'.> org.apache.http.conn.HttpHostConnectException: Connection to http://127.0.0.1:1080 refused 那么看来是我以前设置了,但是我在项目的gradle.properties以及开发工具设置proxy...
androidstudio312gradle升级的坑以及androidstudio卡顿调优姿势技巧大全
简书链接:androidstudio312gradle升级的坑以及androidstudio卡顿调优姿势技巧大全文章字数:1288,阅读全文大约需要5分钟最新版开发工具Windows版本卡成狗,之前编辑 gradle卡死现在不卡了,但是卡xml和卡java编写代码,之后弹出了修改VM配置导致问题更加严重,看来不是所有配置都应该改大的。 12312:17 Unable to save plugin settings: The plugin org.jetbrains.android failed to save settings and has been disabled. Please restart Android...
Unabletoresolvedependencyfor1
简书链接:Unabletoresolvedependencyfor1文章字数:57,阅读全文大约需要1分钟 检查robot_sdk文件夹存在,然后发现build.gradle并没有拉取下来 ok问题知道了