自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

anlory的专栏

Nothing is impossible !!

  • 博客(20)
  • 收藏
  • 关注

原创 Android ANR梳理

ANR(Application Not responding),是指应用程序未响应,Android系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过长,都会造成ANR。一般地,这时往往会弹出一个提示框,告知用户当前xxx未响应,用户可选择继续等待或者Force Close。ANR主要有4类:Service Timeout:对于前台服务,则超时为S...

2019-05-10 22:57:58 308

原创 开启 TCP BBR 拥塞控制算法

BBR 目的是要尽量跑满带宽,并且尽量不要有排队的情况,效果并不比速锐差。Linux kernel 4.9+ 已支持 tcp_bbr。下面简单讲述基于 KVM 架构 VPS 如何开启。Debian 8+ / Ubuntu 14.04下载最新内核,最新内核查看这里http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.16/linux-ima...

2019-04-17 10:26:02 1077

原创 git生成patch和合入patch

方法1.做patch:首先,修改代码然后,在存在.git的代码目录下使用如下指令 git diff > patchname.patch 核入patch: 到代码对应的git库下执行如下指令: git apply patch所在路径 ...

2018-12-25 18:06:51 4491

原创 kernel exception 流程

Kernel Exception 根本原因有两类,oopsoops是美国人比较常有的口语。就是有点意外,吃惊,或突然的意思。内核行为表现为通知感兴趣模块,打印各种信息,如寄存器值,堆栈信息… 当出现oops时,我们就可以根据寄存器等信息调试并解决问题。 /proc/sys/kernel/panic_on_oops为1时导致panic。我们默认设置为1,即oops会发生panic。pa...

2018-12-16 15:32:08 517

原创 Android关机重启流程(三)

一、回顾前面我们从最开始的PM.reboot(),经过层层调用,最终调用libc库得reboot和syscall,也正式开始从用户空间切到到内核空间。二、内核重启流程kernel/reboot.carch/arm64/kernel/process.c2.1  SYSCALL_DEFINE4(reboot内核空间reboot入口/* * Reboot system c...

2018-12-16 12:23:49 1448

原创 Android关机重启流程(二)

一、回顾先回顾下上部分得分析,从最开始的PM.reboot(),经过层层调用,最终调用SystemProperties.set(“sys.powerctl”, “reboot,” + reason);二、重启流程aosp/system/core/init/property_service.cppaosp/system/core/init/reboot.cppaosp/sys...

2018-12-15 15:00:59 4510

原创 Android关机重启流程(一)

借鉴参考:http://gityuan.com/2016/07/09/android-reboot/#28-sdtrebootorshutdown一,概述重启动作从按键触发中断,linux kernel层给Android framework层返回按键事件进入 framework层,再从 framework层到kernel层执行kernel层关机任务。当然还有非按键触发,比如shell 命令...

2018-12-14 23:23:58 2306 1

转载 android studio 工程在android 源码编译

1. 指定路径最简单的办法就是将android studio生成的工程方到源码中,然后添加Android.mk,指定代码和资源路径以及依赖库即可。LOCAL_SRC_FILES := $(call all-java-files-under, Application/src/main/java) LOCAL_MANIFEST_FILE := Application/src/main/An...

2018-09-03 23:32:53 2071

原创 在Android 8.0之后版本上添加Hidl Service

目录1. 编写hal文件并编译2. 实现Hidl Interface3. 编写hdil service4. 配置manifest.xml 5. hidl client端调用5.1 实现java调用hidl service的例子5.2 实现C++ 调用hidl service的例子6. github地址本文以LED为例在aosp上添加HIDL,以熟悉整个过程。...

2018-08-24 21:59:17 9389 17

原创 用repo管理自己的仓库

1. repo安装curl https://storage.googleapis.com/git-repo-downloads/repo > /usr/bin/repovi `which repo`REPO_URL地址改为:https://code.csdn.net/kangear/git-repo.git。2. 建立自己的manifests.git服务端创建一个manifest.git...

2018-06-10 22:32:43 2859

原创 搭建gerrit服务器

简单介绍Gerrit,谷歌开发的,一种开放源代码的代码审查软件,使用网页界面。利用网页浏览器,同一个团队的软件程序员,可以相互审阅彼此修改后的代码,决定是否能够提交,退回或是继续修改。它使用版本控制系统,Git作为底层。参考:http://www.worldhello.net/gotgit/05-git-server/055-gerrit. http://chuquan.me/2017/12/...

2018-06-10 16:27:59 1309

原创 对apk进行系统签名

签名需要的工具:1.  openssl2.  keytoolSELinux(或SEAndroid)将app划分为主要三种类型(根据user不同,也有其他的domain类型):1. untrusted_app   第三方app,没有android平台签名,没有system权限2. platform_app    有android平台签名,没有system权限3. system_app      有a...

2018-05-18 10:00:54 2929

原创 Android adb shell 常用命令

打印日志adb logcat > log.txt /* 打印普通的日志*/adb logcat *:e > log.txt /* 打印Error级别的日志*/adb logcat -b > log.txt /* 打印radio的日志*/adb logcat -s Tag > log.txt /* 打印指定Tag的日志*/adb shell dmesg >

2017-08-08 23:02:33 1559

原创 Android - Input子系统

初始Android输入系统参考深入理解Android卷3本文将详细讨论Android输入系统的工作原理,包括输入设备的管理,输入事件的加工方式以及派发流程。 重点讨论输入设备和输入事件Android输入系统的工作原理:监控/dev/input/下所有的设备节点,当某个节点有数据可读时,将数据读出来进行一系列的翻译加工,然后在所有的窗口中寻找合适的事件接收者,并派发给他。输入系统简介 输入系统的总

2017-06-07 22:03:06 499

原创 Epoll介绍和使用

Epoll介绍Epoll 可以使用一次等待监听多个描述符的可读\可写状态。等待返回时携带了可读的描述符或者自定义的数据,使用者据此读取所需的数据后可以再次进入等待。因此不需要为每个描述符创建独立的线程进行阻塞读取,避免了资源浪费的同时又可以获得较快的响应速度。Epoll的接口int epoll_create(int max_fds);创建一个epoll对象的描述符,之后对epoll的操作均使用这个描

2017-06-07 22:01:31 379

原创 INotify的介绍和使用

INotify的介绍和使用inotify – Linux 2.6 内核中的文件系统变化通知机制 INotify的介绍inotify 是一种文件系统的变化通知机制,如文件增加、删除等事件可以立刻让用户态得知。Inotify 不需要对被监视的目标打开文件描述符,而且如果被监视目标在可移动介质上,那么在 umount 该介质上的文件系统后,被监视目标对应的 watch 将被自动删除,并且会产生一个 u

2017-06-07 22:00:12 1943

原创 Socket本地通信和网络通信

Linux进程间通信方式–本地socket服务端://s_unix.c#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <sys/un.h> #define UNIX_DOMAIN "/tmp/UNIX.domain"int main(void){ socklen_t clt_addr

2017-05-19 21:58:42 2004

原创 socketpair与管道pipe

在看Android 输入系统的时候,第一次看到socketpair,发现和管道非常相似。唯他们的区别就是socketpair,默认支持全双工,而pipe是半双工的。他们一样只能用在父子进程或者线程之间通信。 下面分别以socketpair和管道实现全双工通信。管道实现线程间全双工通信#include<stdio.h>#include<pthread.h>#include<string.h>#

2017-05-19 21:48:57 881

原创 Android添加硬件访问服务

添加硬件访问服务主要涉及三部分,JNI、AIDL、和Service。JNI接口在frameworks/base/services/core/jni/ 添加jni接口实现文件com_android_server_LedService.cpp。 com_android_server_LedService.cpp源文件:......static const JNINativeMethod me

2017-02-23 22:47:18 513

原创 Linux- Input输入子系统

Input输入子系统个人总结Input输入子系统在驱动开发中的重要性,大家都知道, 就不多说了。个人高驱动开发也有一年了,突发奇想想写博客,来写写工作中常遇到的知识点,总结一下,为了更加清晰的理解。我这里主要参考了几篇blog,如有侵权,还请谅解。 Linux input子系统分析之一:软件层次 http://blog.csdn.net/yueqian_scut/article/details

2016-06-03 15:17:55 3316

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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