
Android
文章平均质量分 62
z9722
这个作者很懒,什么都没留下…
展开
-
记一次Android OOM问题
问题背景:新平台固件测试后,反馈一个OOM的问题。问题日志如下:3944 3959 I: Clamp target GC heap from 280MB to 256MB3944 3959 I: Alloc concurrent copying GC freed 0(0B) AllocSpace objects, 0(0B) LOS objects, 0% free, 256MB/256MB, paused 173us total 383.632ms3944 3944 I: WaitFo原创 2022-04-02 17:47:43 · 7916 阅读 · 0 评论 -
Ubuntu下fastboot命令无法使用解决方案
fastboot环境变量都设置好了,机器已进入bootloader模式,fastboot device提示< waiting for any device >解决方法: https://github.com/snowdream/51-android原创 2021-06-02 23:17:57 · 1336 阅读 · 0 评论 -
Android使用Fiddler抓包记录
本文是记录分析系统代理问题时,抓包工具的使用记录注意:手机和pc连接同一个局域网一.PC配置1. 配置fiddler允许监听https打开Fiddler,菜单栏选择 Tools-Options,按下图配置。首次配置时会提示是否信任fiddler证书,直接yes2.配置fiddler允许远程连接3.PC防火墙配置a).打开防火墙高级设置b).新建入站规则,选择"端口",下一步。设置"特定本地端口"为"8888",一直下一步即可4.查看本机ip...原创 2021-05-15 16:49:15 · 240 阅读 · 0 评论 -
[Android的Init进程一]启动脚本init.rc
Android Init语言由五个大类的语句组成,Actions, Commands, Services, Options, Imports。1.Actionson <trigger> <command> <command> <command>2.Commands3.Servicesservice <name> <pathname> [ <argument> ]* <原创 2021-04-28 20:12:23 · 200 阅读 · 0 评论 -
Android native crash定位
目录一.应用开发1.模拟环境2.crash定位脚本演示3.脚本说明二.系统开发本文针对Android应用开发和系统开发分别提供了两款native crash定位工具。一.应用开发下载地址:1.模拟环境本文使用Android Studio 4.1版本,按默认配置创建一个jni工程。模拟native crash,修改natvie-lib.cpp2.crash定位脚本演示通过logcat查找tombstoneI/BootReceiver: Copying /data/tombston原创 2021-03-16 12:35:11 · 1044 阅读 · 0 评论 -
Android getDeviceId流程分析
1.首先来看getDeviceIdframeworks/base/telephony/java/android/telephony/TelephonyManager.javapublic String getDeviceId() { ... ITelephony telephony = getITelephony(); if (telephony == null) return null; return telephony.getDeviceId(m原创 2021-03-15 17:50:15 · 1113 阅读 · 0 评论 -
Android 分析EventLog
一.查看EventLog使用命令:logcat -b events二.logtags生成2.1开机event log分析1.获取开机时的event log:logcat -b events | grep boot_progress输出:I boot_progress_start: 20726I boot_progress_preload_start: 23255I boot_progress_preload_end: 26806I boot_progress_system_ru原创 2021-02-26 11:52:41 · 1591 阅读 · 0 评论 -
android进程间通讯aidl新增接口的异常处理
一.引出问题在系统定制过程中,我们常常使用aidl来提供接口给客户使用。因为接口的sdk通常是通用的一份,并且sdk的aidl文件是最完整的(包含接口一到接口n),而各个机型不一定完全实现了所有接口,比如下图机型A服务端的aidl文件只包含部分接口(比如只有接口一到接口五)。如果在机型A上调用了接口六,此时我们应该能够抛出异常告知客户该接口未实现。二.如何告知客户接口未实现1.机型及时同步最新的aidl文件,服务端在未实现的接口处抛出异常,sdk里捕获异常。这个方案首先排除,首先如果机型比较多原创 2020-10-20 12:45:41 · 1653 阅读 · 0 评论 -
[Android调试工具] 一.Systrace使用记录
环境配置安装 Python2.7,并添加到 PATH 环境变量安装 Android SDK 工具使用方法以下命令会调用 systrace 来记录设备活动,并生成一个名为 mynewtrace.html 的 HTML 报告。此类别列表是大多数设备的合理默认列表python systrace.py -o mynewtrace.html sched freq idle am wm gfx view binder_driver hal dalvik camera input res如需查看已连接设原创 2020-06-30 14:20:03 · 228 阅读 · 0 评论 -
Android studio坑记录
自定义注解处理器不起作用gradle版本换成5.0以下的so打包,debug版本无问题,release版本在/data/data/xx/lib下没有so必须以lib开头原创 2020-06-17 00:41:10 · 153 阅读 · 0 评论 -
Android储存BMP格式图片
BMP格式可参考这片文章:点击跳转上代码 public static byte[] convertBitmap2Bmp(Bitmap bitmap) { if (bitmap == null) { return null; } int w = bitmap.getWidth(); int h = bitmap.getHeight(); int wWidth = ...原创 2020-04-23 17:16:36 · 1517 阅读 · 0 评论 -
[Android源码浅析]一.编译系统(上)
基于nexus6,AOSP 7.1.1源码本文需要的shell基础一.编译命令二.envsetup.sh1.定义函数2.生成编译配置列表3.执行source build/envsetup.sh三.lunch1.lunch命令格式2.lunch中的重要函数3.lunch函数说明四.make本文需要的shell基础为了分析Android编译系统,需知道少量shell基础知识。以下两篇可对比查阅...原创 2020-04-11 21:24:13 · 482 阅读 · 0 评论 -
Android Makefile调试记录
Makefile 调试记录1.输出log2.判断文件路径是否存在3.执行shell脚本时的坑1.输出log可以使用warnning:$(warning "内容")2.判断文件路径是否存在ifeq ($(shell if [ -d $(TOPDIR)path ]; then echo "exist"; else echo "notexist"; fi;), exist)todoend...原创 2019-08-05 19:49:31 · 183 阅读 · 0 评论