自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 Android查看所有串口和usb设备快捷方法

查看所有串口和usb设备方法(1)查看串口是否可用 可以对串口发送数据,比如对com1口,echo /dev/ttyS0(2)查看串口名称使用 ls -l /dev/ttyS* 输出信息: crw-rw----. 1 root dialout 4, 64 5月 17 02:24 /dev/ttyS0 crw-rw----. 1 root dialout 4, 65 5月 17 02:24 /dev/ttyS1 一般情况下串口的名称全部在dev下面,如果你没有外插串口卡的...

2022-04-26 16:45:10 9013

原创 Android基于Ymodem协议升级嵌入式MCU主控

一、概述Ymodem协议主要包括ISP和IAP两大协议。STM32在线升级 (IAP)不需要拆机就能够对产品进行升级,通过Bootloader就可以完成这项工作。ISP和IAP的区别:(1)ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码, 而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。其主要任务是通过一种可用的串行外设( USART、 CAN、USB、 I2C 等)将应用程序下载到内部 Flash 中..

2022-04-25 19:31:43 3529 1

原创 软件常用平台和工具

1、gitlab/svn – 代码管理2、PLM系统 - 软件版本或文档受控系统3、JIRA - 项目/任务/bug/需求管理系统4、Mantis系统 - bug管理系统5、Confluence - 知识共享系统6、Jenkins版本集成

2022-04-21 21:20:53 2533

原创 Android系统SELinux简单整理

SELinux分成了两部分,位于 /system/sepolicy 下的 platform 部分和位于 /device/vendorXXX/sepolicy 下的 vendor 部分。对应开发板子上目录 /system/etc/selinux 下的 platform 部分和位于 /vendor/etc/selinux 下的 vendor 部分。>>>>>> 哪些是 coredomain ???Coredomain 是 attribute(属性),属于 domain

2022-04-20 09:40:00 5429

转载 SPI四种模式

经常忘记SPI4种工作模式,学了忘了,现在记下方便以后查阅。在芯片资料上极性和相位一般表示为CPOL(Clock POLarity)和CPHA(Clock PHAse), 极性和相位组合成4种工作模式。模式 CPOL(时钟极性) CPHA(时钟相位) MODE0 (常用) 0 0 MODE1 0 1 MODE2 1 0 MODE3(常用) 1 1 CPOL: SPI空闲时的时...

2022-03-26 16:15:57 11156

原创 Ubuntu平台编译环境配置及搭建

编译服务器配置1. Prepare Ubuntu 14.04.2请务必使用 Ubuntu14.04、gcc 4.8 配置,否则会导致 build 过程中出现环境 error 问题。 2.Install Google-recommended packagesudo apt-get install git gperf make zlib1g-dev:i386 zip python-networkx git-core gnupg flex bison gperf build-essenti.

2022-03-04 14:52:49 1498 1

原创 Systrace 的原理流程及定制

一、原理和基本流程Systrace是android性能调试优化的常用工具,它可以收集进程的活动信息,如界面布局、UI渲染、binder通信等;也可以收集内核信息,如cpu调度、IO活动、中断等;这些信息会统一时间轴,在Chrome浏览器中显示出来,非常方便工程师性能调试、优化卡顿等工作。简易的流程图如下,systrace是基于ftrace实现的,而ftrace 是 Linux 内核中的调试跟踪机制。首先systrace指定抓取trace的类别等参数,然后触发手机端的/system/bin/a

2022-03-02 09:10:00 737

原创 Android 从开机到交互

原文链接:Android 从开机到交互 - 知乎

2021-12-02 14:18:48 188

转载 Android中UID、GID和PID的讲解

一、概述在实际的开发中经常会碰到各种ID,这是由于在计算机的发展过程中,需要对程序执行的每一步做标记,通过这些标记的关联便于系统的统一管理。像PID、UID、GID、和EUID等,其实对于这些ID不需要刻意记忆,只需要了解其名称含义,就明白其所对应的意义。二、Linux中的概念解析2.1 UID在Linux中用户的概念分为:普通用户、根用户和系统用户。普通用户:表示平时使用的用户概念,在使用Linux时,需要通过用户名和密码登录,获取该用户相应的权限,其权限具体表现在对系统中文件的增删改

2021-11-12 09:52:54 5577

转载 Android源码编译系列博客:

原文链接:Android.bp入门指南之浅析Android.bp语法_IT先森-CSDN博客_android.bpAndroid.bp你真的了解吗Android.bp入门指南之Android.mk转换成Android.bpAndroid.bp入门指南之浅析Android.bp语法Android.bp正确姿势添加宏控制编译指南Android高版本P/Q/R源码编译指南如何在线查看Android源码自带学习文档docs...

2021-11-03 10:10:26 87

原创 Android系统java/native crash和anr异常处理流程以及DroboxManagerService日志记录

1、Android系统java crash异常处理流程参考:Android8.0 系统异常处理流程_此男子淡漠-CSDN博客Java处理未捕获异常有个Thread.UncaughtExceptionHandler,在Android系统中当然也是通过实现其来进行未捕获异常处理。Android 默认系统异常处理是在启动SystemServer进程时设置的。Zygote进程启动SystemServer时会调用ZygoteInit的forkSystemServer()方法,该方法中又通过handleSy

2021-10-18 10:03:04 2389

转载 Linux内存参数详细说明(free+/proc/meminfo)

原文:Linux内存参数详细说明(free+/proc/meminfo) - 付杰博客由于Linux内存命令很多,几乎都可以通过这些命令知道:linux内存占用率多少?linux内存使用率多少?以及还剩下多少内存?哪个程序应用占得最多?......等等。在做服务器或程序优化的时候,这个也是很重要的。可以知道你服务器是否需要升级?程序代码是否需要优化?一般我们用 free+/proc/meminfo 就基本上可以了解以上所有的东西了。因此,这里重点就以这两个命令为主了。就算你用其它命令也.

2021-09-27 16:02:50 3849

原创 工具audit2allow自动生成Selinux策略语句

1.audit2allow的安装:#sudo apt install policycoreutils2.audit2allow的用法(1)抓取和权限相关的log指令,并重定向保存至文件(假如是:avcTest.txt):#adb logcat -b all | grep "avc" > ./avcTest.txt(2)将保存相关的log的文件复制到ubuntu里面,使用命令:#audit2allow -i avcTest.txt-o avc.te3.打开生成的avc.te文件,根据.

2021-09-24 18:03:12 2035

转载 Android添加SystemFeature系统特性

原文参考:Android系统添加SystemFeature方法_特立独行的博客-CSDN博客前言:Android系统可以通过hasSystemFeature方法来判断系统是否支持特定模块功能,从而进行不同的逻辑运行,当定制系统或系统裁剪时,需要对系统提供的Feature进行自定义和裁剪。一、添加自定义Feature系统Feature定义在frameworks/native/data/etc目录下,该目录下的xml文件会被打包复制到系统镜像system/etc/permissions目录下,.

2021-09-22 10:44:00 2033

原创 Android Binder通信一次拷贝

原文链接:Android Binder通信一次拷贝你真的理解了吗?_IT先森-CSDN博客

2021-09-16 09:04:48 138

原创 详解adb shell 常用命令

一、文件操作相关命令1.文件操作命令子命令 参数 说明 cd 无 进入目录 cat [-beflnstuv] [-B bsize] [file...] 查看文件内容 -n:显示行号 -b:显示行号,但会忽略空行 -s:显示行号,连续空行标记为一行 df 无 列出分区列表 du [-H] [-L] [-P] [-a] [-d depth] [-s] [-cghikmnrx] [file...] 查询文件或目录

2021-09-09 20:09:12 1366

原创 Binder死亡通知

Android系统中当应用进程被kill杀掉时,底层会有该进程的Binder服务端的死亡回调通知。在应用进程创建的过程中有一个attachApplicationLocked方法的过程中便会创建死亡通知。[-> ActivityManagerService.java]private final boolean attachApplicationLocked(IApplicationThread thread, int pid) { try { ...

2021-09-06 11:10:48 1654

转载 Android电池管理系统框架整理

一、Android 电池服务Android电池服务,用来监听内核上报的电池事件,并将最新的电池数据上报给系统,系统收到新数据后会去更新电池显示状态、剩余电量等信息。如果收到过温报警和低电报警,系统会自动触发关机流程,保护电池和机器不受到危害。Android电池服务的启动和运行流程:Android电池服务的源码结构Framework\base\services\java\com\android\server├── SystemServer.java创建BatteryServices.

2021-09-06 10:19:25 1507

原创 RM Console的log机制

原文:cnblogs.com/bobfly1984/p/14142094.htmllast_kmsg和ram console首先,在kernel里面通过printk吐log的时候会是下面的一个过程: printk会将信息格式化到kernel log buffer里面去。 然后将这些格式化信息送到console去,在我们的系统里面有两个console,一个是uart console,一个是ram console。uart console里面的内容呢就是我们看到的uart log了。

2021-09-03 10:17:15 121

转载 理解Android进程创建流程

原文链接:http://gityuan.com/2016/03/26/app-process-create/基于Android 6.0的源码剖析, 分析Android进程是如何一步步创建的,本文涉及到的源码:/frameworks/base/core/java/com/android/internal/os/ - ZygoteInit.java - ZygoteConnection.java - RuntimeInit.java - Zygote.java/

2021-08-31 16:21:28 1122

转载 理解杀进程的实现原理-signal

基于Android 6.0的源码剖析, 分析kill进程的实现原理,以及讲讲系统调用(syscall)过程,涉及源码:原文链接:http://gityuan.com/2016/04/16/kill-signal//framework/base/core/java/android/os/Process.java/framework/base/core/jni/android_util_Process.cpp/system/core/libprocessgroup/processgroup.c.

2021-08-31 14:24:59 1087

原创 Android ANR系列整理

ANR(0)---理解Android ANR的触发原理ANR(1)---理解Android ANR的信息收集过程ANR(2)---Native进程之Trace原理ANR(3)---ART虚拟机之Trace原理Android性能优化(五)--更快--稳定--响应速度ANR

2021-08-27 10:57:52 77

转载 彻底理解安卓应用无响应机制

引言不论从事安卓应用开发,还是安卓系统研发,应该都遇到应用无响应(ANR,Application Not Responding)问题,当应用程序一段时间无法及时响应,则会弹出ANR对话框,让用户选择继续等待,还是强制关闭。绝大多数人对ANR的了解仅停留在主线程耗时或CPU繁忙会导致ANR。面试过无数的候选人,几乎没有人能真正从系统级去梳理清晰ANR的来龙去脉,比如有哪些路径会引发ANR? 有没有可能主线程不耗时也出现ANR?如何更好的调试ANR?如果没有深入研究过Android Framewor

2021-08-26 20:34:07 966

转载 Systrace 的原理流程及定制

一、原理和基本流程Systrace是android性能调试优化的常用工具,它可以收集进程的活动信息,如界面布局、UI渲染、binder通信等;也可以收集内核信息,如cpu调度、IO活动、中断等;这些信息会统一时间轴,在Chrome浏览器中显示出来,非常方便工程师性能调试、优化卡顿等工作。简易的流程图如下,systrace是基于ftrace实现的,而ftrace 是 Linux 内核中的调试跟踪机制。首先systrace指定抓取trace的类别等参数,然后触发手机端的/system/bin..

2021-08-26 17:27:38 399

空空如也

空空如也

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

TA关注的人

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