hidl

framework—> Vendor Interface —> hal Vendor Interface: `Android O` 新增加的一个机制,用于将`framework` 与 `hal` 分开,便于在系统升级时,`OEM` 厂商 跳过`S...

2018-03-05 18:08:00

阅读数 1533

评论数 3

A|B升级框架

A|B升级 A|B 升级主要包含了3个部分: boot_control 服务主要用于提供修改 A|B 系统分区状态的相关接口。 UpdateEngine 服务 主要用于后台更新 A|B 系统,并通过通过boot_control去修改 当时的分区状态。 java 层的 UpdateEngine...

2018-02-09 17:57:59

阅读数 999

评论数 1

稳定性问题总结

稳定性问题比较杂,且很多是概率性问题,没有统一处理方式,需要针对具体的问题,具体分析, 必现的问题较易解决,针对当前代码添加各种调试log,一步步debug去定位,过程虽然可能慢点,但一般都会解决。 但针对偶发性的概率问题,则较为麻烦,依赖于大量的测试复现,然后统计 分析当前抓...

2018-01-30 11:34:04

阅读数 3064

评论数 3

浅探热修复技术

热修复是一个为了即时解决紧急bug的技术,从传统的开发流程看,如果要解决一个应用中的bug,流程为: 重新发布版本 ——> 用户下载安装 —–> bug 修复 此流程 存在 bug修复的不及时、且用户下载安装成本较高 等缺陷。而如果使用热更新技术,修复一个bug 的流程...

2017-10-08 17:21:59

阅读数 206

评论数 0

后台服务,注入input事件

service 的启动界面 @Override public IBinder onBind(final Intent intent) { Log.i("service onBind"); return new IMyAidlInte...

2017-07-14 17:18:39

阅读数 356

评论数 0

从字节码角度理解一些java 问题

1、非静态内部类对象持有外部的引用: public class ExternalClass{ class InsideClass{ } } javac 会编译出两个ExternalClass$InsideClass.class 与ExternalClass.c...

2017-06-27 16:11:42

阅读数 186

评论数 0

javap 与字节码指令

1、binder 对端打印 完成 2、java进程实时输出 待完成 3、native反射调用java代码, 有异常时,需要输出native 堆栈 待完成 4、后台进程智能管理(binder 通信检测、连杀、后台管理) 完成 1/4 5、后台log 日志系统 6、jdb 的封装改进

2017-06-20 18:36:05

阅读数 948

评论数 0

System_server 与/dev/socket/zygote

system_server除了在刚创建的时候通过/dev/socket/zygote

2017-06-05 18:07:44

阅读数 948

评论数 0

Zygote 与/dev/socket/zygote

1、zygote socket 的创建apk的启动是ams 通过socket 与zygote 通信,然后由zygote fork出来一个进程,来加载运行apk的。 ams 与zygote 通信的socket 是在系统启动时,由init.zygote*.rc 中指定创建的:service zygot...

2017-06-05 16:59:32

阅读数 640

评论数 0

systemimage 太大导致的编译失败

针对此种异常可以做以下操作: 1、可以删除out目录下一些,多余的预置apk out/target/product/system/priv-app/** 之后调用make snod 直接进行打包2、修改device 下对应工程内的BoardConfigCommon.mk 文件,扩大syst...

2017-05-31 15:05:33

阅读数 1007

评论数 0

范型&&诡异异常

Looper 中是使用一个ThreadLocal 来存储 当前线程的 looper的, static final ThreadLocal sThreadLocal = new ThreadLocal(); 在prepare 方法中,对此 ThreadLocal 方法赋值:private st...

2017-05-17 11:44:11

阅读数 160

评论数 0

java 与native 互锁,造成的watchdog

一、发生watchdog有两种情况:1、system_server 特定进程特别繁忙,导致 watchdog ,无法向system_server 的特定线程post检测任务,导致的watchdog 超时,只有在system_server 特别繁忙(类似陷入死循环),在长达1分钟的时间内,handl...

2017-05-15 15:01:22

阅读数 621

评论数 0

vim 配置

Vundle.vim 用于管理插件,安装配置为:git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim 修改.vimrc调用:vim +PluginInstall +qall 命令 参考:h...

2017-05-04 10:12:08

阅读数 379

评论数 0

oat文件的 backtrace 定位

backtrace 为:     #00 pc 00000000026c0024 /data/dalvik-cache/arm64/system@framework@boot.oat (offset 0x26c0000)     #01 pc 00000000026e9d38  /data/d...

2017-04-26 10:54:51

阅读数 2636

评论数 0

记一次简单异常------系统升级后信息概率报错

现象: 本地升级update升级后,提示信息停止运行堆栈: 04-14 06:42:17.747 2854 3279 E AndroidRuntime: FATAL EXCEPTION: TransactionService 04-14 06:42:17.747 2854 3279 E An...

2017-04-20 11:29:52

阅读数 671

评论数 0

superuser root 原理详细分析

Root 方法: 通过fastboot 刷入指定的recovery.img, 替换了系统原生的recovery, 进入recovery,刷入root相关文件,以达到root目的。目前市面常见的 root 管理工具为: supersu、superuser、kingroot 等...

2017-04-13 10:34:12

阅读数 17491

评论数 0

logd,删除log,逻辑

ogd 中用来缓存log的是一个队列,log入队、被删、出队,用图表示大概为: LOG 入队为:

2017-03-15 17:36:02

阅读数 676

评论数 0

logd 删除log

进程Log过多,超过上限,导致log被删除,类似: chatty  : uid=1000(system) MountService expire 168 lines logd  删除log的判断依据为:     查看代码,logd 的判断是否删除的依据为:     ...

2017-03-15 17:22:40

阅读数 919

评论数 0

watchdog ,hang_detect分析

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富...

2017-03-14 11:26:14

阅读数 1721

评论数 0

双微信,分享发生TransactionTooLargeException 异常,记录

前提条件: 1. 开启双应用(设置-》双应用) 2. 安装微信。 复现步骤: 1. 用相机拍一张6M左右的照片并保存到手机。 2. 进入图库,打开这张6M左右的照片后选择分享-》朋友。 实际结果: 2. 界面闪一下后,无法弹出微信账号选择界面。 期望结果: 2. 能够成功弹出微信...

2017-03-06 14:45:51

阅读数 1357

评论数 1

提示
确定要删除当前文章?
取消 删除