- 博客(165)
- 资源 (8)
- 收藏
- 关注
原创 Android性能优化之游戏收敛线程,减少OOM发生(epic 检测线程调用/booster减少常驻线程超时销毁)
使用epic hook方式检测thread 的调用栈;进行分类统计哪些sdk或者业务线程多;设置核心线程超时销毁,使用booster优化,尽量使用协程等等
2023-07-27 18:04:24
910
原创 Android性能优化之Thread native层源码分析(InternalError/Out of memory)
线程创建到启动过程:从Thread.start()-> c++层CreateNativeThread()->JNIEnvExt::Create()创建JniEnv ->c++层pthread_create()—> allocate_thread()分配堆内存->Linux层clone()拷贝新线程-> 反射调用Thread.run()
2023-07-27 14:52:30
455
原创 Android性能优化之Parcel OOM问题分析
遇到Android 跨进程通讯Parcel OOM,从源码角度探究C++层 Parcel 发生OOM的原因。
2023-07-27 14:14:39
390
原创 Android性能优化之游戏 OutOfMemoryError: pthread_create探究真相
探究游戏在bugly上百万量级OOM crash 的真凶。
2023-07-27 11:58:33
837
原创 Android 6.0 版本中插件化沙盒环境下IllegalArgumentException Unknown package异常
Android crash 可能并不是自身游戏引起,可能是运行环境,沙盒插件化的兼容性,记录一次排查过程
2023-07-26 16:32:08
283
原创 AndroidStudio Memory profiler(内存分析器)
使用AndroidStudio 分析app进程中内存状况,哪些对象被频繁创建导致内存抖动?哪些占用对象一直没有被销毁,查看调用栈逐层分析。
2023-07-26 15:36:53
1451
原创 Android 耗时分析(adb shell/Studio CPU Profiler/插桩Trace API)
使用adb logcat、adb shell 、studio cpu profiler、插桩Debug trace API ,来分析冷启动耗时、Activity显示耗时、某个方法具体耗时点,提高流畅度
2023-07-26 12:13:33
3162
原创 Android adb shell 查看App内存(java堆内存/vss虚拟内存/详细的内存状况/内存快照hprof)和系统可用内存
通过adb shell 查看app内存和系统内存,分析是java 堆内存不足还是app虚拟内存不足还是系统可用内存不足导致内存紧张,从而引发oom
2023-07-26 11:33:44
11904
原创 在oppo系统中Android Oaid SecurityException 解决方案
处理oppo系统下oaid SecurityException问题
2023-07-26 10:00:00
915
原创 Android帧动画导致的Bitmap OOM(外来sdk带来风险点)
android 分析内存快照,锁定bitmap oom的元凶,帧动画导致。
2023-07-26 09:00:00
215
原创 Android性能优化之游戏的Theme背景图
慎重使用Theme的windowBackgroud ,防止与Activity的root布局的windowbackg重复绘制
2023-07-25 17:32:14
339
原创 Android性能优化之修复游戏中内存泄漏(java层)
在bugly上内存OOM越来越严重,因此,近期对内存进行优化。从java层的内存进行优化开始,通过LeakCannary或者adb shell 获取到内存快照,从而发现好几处内存泄漏点。
2023-07-25 17:04:46
347
原创 Android 海外版本中远程仓库无法拉取问题
在处理海外版本时 ,经常遇到远程仓库无法加载的问题,是网络问题导致的。要么,公司运维搭建可翻墙的梯子,或其他的方式避开限制。还有一种方式,是找到网站对应的ip ,在host 中配置,便可绕开限制。
2023-07-25 14:34:35
346
原创 Android System crash DeadSystemException(Service/Activity/终极解决方案)
当Android系统服务已经死亡,app进程与之通讯,会抛出DeadSystemException。可能发生在Activity的生命周期,service的生命周期,其他涉及跨进程通讯,处理起来各有不同
2023-05-08 10:37:11
9351
2
原创 Android 内存分析(java/native heap内存、虚拟内存、处理器内存 )
通过Byte数组和Bitmap来了解,dalvik java 堆内存、native heap 内存、32位设备3G虚拟内存,手机处理器内存等等。
2023-05-05 15:56:18
7630
2
原创 Android 获取奔溃crash的日志(adb logcat或者dropbox)
记录下adb logcat 抓取奔溃日志,dropbox 获取系统记录的奔溃,判断是系统进程还是app进程导致奔溃
2023-04-28 10:51:33
12131
原创 Android 7.1 Toast修复之终极篇,进程不奔溃(包含apk和兼容外来dex插件)
不再发愁Toast问题:通过UncaughtExceptionHandler拦截Android 7.1Toast 异常;Looper.loop() 让主线程恢复消息处理机制,不奔溃;
2023-04-13 18:09:03
1065
原创 Android OkHttp ProtocolException 707 bytes but received 1065
从Okhttp 源码角度分析ProtocolException异常解决方案
2023-03-29 16:25:22
319
原创 Android 7.1 Toast修复之多渠道包动态使用Booster或者Lancet plugin
修复Android 7.1 系统Toast Bug ,适配多渠道包,动态使用Booster插件或者Lancet插件
2023-03-24 16:58:05
573
原创 Android Lancet Aop 字节编码修复7.1系统Toast问题(WindowManager$BadTokenException)
Android 通过Lancet Aop 字节编码修复7.1系统Toast Bug
2023-03-21 16:54:45
747
原创 Android处理native crash(ndk-stack和addr2line)
android ndk-stack和addr2line处理native crash
2023-02-06 11:50:23
1464
2
原创 Android so库中UnsatisfiedLinkError
android so库 UnsatisfiedLinkError 方法找不到问题,逐步排除各种可能的原因
2022-09-13 16:54:54
939
原创 Android 处理WebView not install(源码分析定位)
Android WebView Installed问题,分析其FrameWork层中源码走向,解决问题。
2022-09-08 15:21:53
3943
原创 android Leakcanary/Studio Profiler/MAT 处理内存问题(泄漏和Big超大内存对象)
Android 处理内存问题(泄漏和大内存对象),借用Leakcanary/Studio Profiler/Mat。
2022-09-01 16:53:21
2058
原创 处理华为Framework层中curosr和空指针问题(反编译ROM和Hook动态代理)
处理华为ROM 源码报错(cursor和空指针),通过反编译华为 framework.dex 进行源码分析,Hook 动态代理来解决。
2022-08-30 12:03:21
1471
原创 Android 9.0 SQLiteCantOpenDatabaseException SQLITE_CANTOPEN(不支持WAL模式)源码分析定位
Android 9.0 及其以上不支持WAL模式导致 SQLiteCantOpenDatabaseException SQLITE_CANTOPEN 的java/native层 源码分析定位
2022-08-26 10:37:26
2287
3
原创 Android GLSurfaceView EGL_BAD_CONFIG 源码分析定位
Android GLSurfaceView 创建EglContext过程发生常见的几种异常,通过java和native层源码分析定位
2022-08-24 16:48:24
1316
原创 Android MediaPlayer IllegalStateException源码分析定位
MediaPlayer IIIegalStateException 源码分析定位
2022-08-18 15:02:45
1020
原创 Android Koom 处理 app 的OOM 一些系列问题(java /native/thread leak)
使用快手团队的koom 专治android oom 问题,包含thread 线程过多、java /native 内存泄漏、java 大对象占用内存等等
2022-08-17 16:23:38
1260
2
原创 处理Activity#onResume()遇到java.lang.IllegalArgumentException诡异异常
记录处理Android 较为诡异的问题,Activity#onResume()发生IllegalArgumentException 异常。
2022-08-01 09:30:00
1567
原创 Android NDK 之CmakeList 笔记
在androidndk开发中,是经常需要通过cmakelist来配置引入库或者编译配置的。这里总结一些常用的cmakelist中api语法。
2022-07-21 11:34:19
1848
原创 Android NDK之Strip裁减so库
1.Strip基本介绍strip:在类Unix和Unix的操作系统中,strip程序可对可执行二进制程序和对象文件中,删除不必要的信息,从而带来更好的性能和减少磁盘空间的使用。“不必要的信息”指的是正常执行功能过程中,不需要的二进制信息,比方调试和符号信息。但该命令裁剪的程度,取决于开发者对这部分代码的具体实现。此外,使用strip可提高二进制文件在逆向工程中的安全性。如果没有二进制文件的信息和对象的名称,分析它将更加困难常用的strip 命令:strip - s xxx.so : 移除所有
2022-05-19 11:51:55
7714
3
原创 Android 如何处理Anr (借用Logcat和Trace 日志)
文章目录**1.Anr的基础知识****2.编写一个Anr的案例****3. 借用 logcat日志和trace文件分析Anr****获取logcat的日志文件****获取Trace.txt 文件**1.Anr的基础知识在开发中,遇到anr 的原因会有:主线程频繁进行耗时的IO操作:如数据库读写多线程操作的死锁,主线程被block;主线程被Binder 对端block;System Server中WatchDog出现ANR;service binder的连接达到上线无法和和System Se
2021-11-05 14:50:01
5637
1
原创 android插件化之BrocastReceiver
实现BrocastReceiver的插件之前,先来了解一下应用程序是如何被解析AndroidManifest.xml中各种标签的。先来了解一下应用程序安装过程系统启动过程中,会扫描某些目录的程序,安装加载过程,为应用程序分配Linux的用户Id和Linux的用户组Id,也会解析程序。先来看下scanPackageLI(): private PackageParser.Package sc...
2019-07-25 11:42:46
481
原创 Android插件化之ContentProvider
先来了解一下ContentProvider的安装和获取过程,查找Hook点。安装ContentProvider过程:应用程序在创建Application的过程中,执行handleBindApplication(),会将contentprovider进行安装。ActivityThreadprivate void handleBindApplication(AppBindData data) ...
2019-07-24 11:49:18
990
1
反编译工具
2018-05-23
Volley#Request(GsonRequest,MultiPartRequest)
2016-11-13
android高效加载Bitmap
2016-11-03
Android Espresso Test Intents and Webview
2016-07-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人