自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

卓越之路

工作总结,专项学习及总结

  • 博客(175)
  • 资源 (11)
  • 收藏
  • 关注

原创 kernel bug汇总

开发过程中,遇到的kernel bug汇总中断响应不及时,中断信号丢失使用request_threaded_irq代替request_irq参考博文:https://blog.csdn.net/mcsbary/article/details/103728816BUG: scheduling while atomicBUG: scheduling while atomic 分析B...

2020-03-04 09:55:55 1607

原创 Android开发搜寻demo的网址

1、github2、https://code.google.com/archive/

2019-07-25 09:30:07 686

原创 shell常用总结

1.awk中使用shell变量awk与shell之间的变量传递方法:https://blog.csdn.net/bytxl/article/details/8621432linux shell awk获得外部变量(变量传值)简介:https://www.cnblogs.com/chengmo/archive/2010/10/03/1841753.html2.awk中使用shell命令使用s...

2019-07-03 14:07:43 311

转载 kernel经典博客

ONE_Tech:https://www.cnblogs.com/xiaojiang1025/

2019-05-28 17:59:53 322

转载 ubuntu 20.04 通过 sshfs 共享文件夹到 windows

使用sshfs搭建和samba同样功能的远程文件夹共享。安装 sshfs 后,默认可以通过 ssh 共享服务器上文件夹,不再需要额外设置。

2023-06-01 14:12:35 889

原创 反编译apk分析问题

1.使用apktool反编译使用apktool反编译apk获取apk中的资源文件2.jadx-gui打开apk使用jadx-gui打开apk,查看代码code3.确定错误提示字符串在错误界面找到可查找的字符串信息4.在apk反编译出来的资源文件中查找5.根据查找的字符串id在代码中查找6.根据显示字符串的位置,分析上下文逻辑...

2022-03-19 21:49:53 348

原创 系统性能分析与优化

1.性能分析理论2.可操作性分析从资源角度分析,有CPU、GPU、内存CPU:比较底层,一般情况先更多的是受限于内存。google也提供有CPU优化方式,深入系统之中,对于普通开发着来讲,相对透明,需要更专业的知识。可以不考虑,有芯片方案方优化即可。分析问题可用top命令查看系统cpu状态GPU:有硬件加速。涉及不多,不做赘述,一般也和内存有很大关系内存:如论是...

2021-10-22 14:48:05 2937

原创 (1)网络-发展历史及核心协议的发展历程

诞生 于冷战期间,起源于美国军方,发展行对成熟后,交予大学及商业机构,开发出民用网络。核心协议发展ARPANET(ARPA网)最初的军事研究使用的网络,网络交换的核心是使用专门的小型计算机执行消息交换,专门的计算机被称为接口信息处理器(IMP)。IMP间使用电话线连接,同时期还有英国、法国等国家发展不同类型的计算机网络。NPC(网络控制协议)随着网络的发展,互联的趋势增强。基于互联的需求,发展出了“数据包交换”的数学理论,使用数据包交换成为计算机之间通过网络通信的基...

2021-09-20 15:59:09 1663

转载 python-执行命令(一)

一、os.system方法在子终端运行系统命令,可以获取命令执行后的返回信息以及执行返回的状态。执行后返回两行结果,第一行是结果, 第二行是执行状态信息,如果命令成功执行,这条语句返回0,否则返回1。import osprint(os.system('date'))由于python3默认采用了UTF-8编码,而WIN8的CMD窗口采用的是GBK编码,导致了编码不同。但是,如果简单的通过encode(‘gbk’)之类的方法,不能解决根本问题。尤其是当我们根本不是使用print命令来输出,而是控

2021-05-12 08:48:05 1822

原创 UML diagrams

一、基础语法1.1 元素关系1.2 port一个类和其他类或自身的part进行交互的交互点。Port点提供对外的interface和需要的interface1.3 part类的一个属性,属于组成类中的一员,当类销毁,part也销毁。在UML2.0,part用虚线表示时,不是组成的一员,只是实例属性。1.4 connector是类的一个特性,属性是特性的实例。用于连接port和part,也可以连接port上的provide interface和require interface。1.5

2021-04-22 17:42:36 532

原创 Wi-Fi联盟概览

Wifi频谱Wifi的项目连接方面应用技术及关系Wi-Fi认证Wifi有很多认证项目,包括基本功能以及性能优化。上面列出来的,Wi-Fi联盟都可以认证。可以在联盟官网查找相关认证的产品并购买。联盟链接:https://www.wi-fi.org/wifi联盟官网...

2021-04-22 16:49:19 336

原创 shell 给自己发送信号并接受处理

在Android上测试#获取自身进程号self_pid=$$echo self_pid: ${self_pid}catch_test=0function self_kill() { echo "------------self_kill" #给自己发送信号,信号值为10,可以使用kill -l在linux系统查询支持的信号 kill -s 10 $self_pid}# 处理信号的函数function onSelfKill(){ echo "-----------onSelfK

2021-04-21 12:37:50 406

原创 (3)Android test

1. 概览2. 调试2.1 概览2.2 过去调试信息2.3 诊断native crash2.4 评估性能

2021-04-21 10:06:30 110

原创 (2)Android Source官网

Android Source官网:https://source.android.google.cn

2021-04-21 09:38:07 941

原创 (一)Android官网概述

Android开发相关技术网站梳理及重点关注章节梳理。熟悉官网资料与技术,在实际开发中有很大帮助,很多客制化放在,在Android原生技术中已经提供。使用好Android,熟悉光网资料很有必要。

2021-04-21 08:48:09 519

原创 selinux-sepolicy配置

一、概念1. 运行模式Selinux有两种运行模式:Permissive和Enforcing。未明确配置权限,当访问时默认权限是拒绝。为方便开发调试权限配置,单个domain可设置为permissive模式,permissivedomain。 语法格式Selinux依赖于标签来匹配操作和策略,标签决定什么是允许的,套接字、文件和进程都在selinux中有标签。 Selinux决策基于分配给这些对象的标签和定义它们如何交互的策略,label的格式:user:role:type:m...

2021-01-21 14:18:54 4994 3

原创 Android10 wifi AP功能

wifi AP功能1.概述2.wifi Ap功能在应用层开发3.配置信息系统时序图4.startTethering时序图1.概述随着网络的广泛应用,广大用户对网络使用的便利性有了更高的要求。为了方便网络的使用,在一些有固定网络信号的设备上,有共享网络的需求。因此,Android实现了三种方式的网络共享(tether):usb 通过usb连接,可以把有网络的设备网络信息通过usb连接线传输给连接的设备蓝牙 网络信息通过wifi天线发送,实现类似wifi的无线网络wifi本篇文章重点说明wifi

2020-11-25 18:30:29 3558 5

原创 Android系统稳定性及性能

单元测试:https://developer.android.google.cn/training/testing性能优化:https://developer.android.google.cn/topic/performance

2020-09-15 09:38:38 1256

翻译 正确理解内存回收log信息

当系统发生内存回收,会有logcat信息。那么如何正确理解内存回收信息呢?有两种类型的回收信息log:虚拟机时代的log和ART时代的log虚拟机时代的log每次产生GC时间,log格式如下:D/dalvikvm(PID): GC_Reason Amount_freed, Heap_stats, External_memory_stats, Pause_time示例:D/dalvikvm( 9050): GC_CONCURRENT freed 2049K, 65% free 3571K/9

2020-09-13 20:03:28 1133

原创 app:app启动总结(3)

app启动分为三大部分:launcher至zygote进程接收到启动app消息zygote进程创建子进程,子进程调用ActivityThread的main函数app进程从main开始至启动完成launcher至zygote进程接收到启动app消息launcher启动app和启动一个activity调用接口一样:startActivity,在执行过程中,AMS根据activity栈状态,决定是否通过zygote进程创建一个新的app进程zygote创建子进程和调用app mainzygote

2020-09-03 17:42:04 157

原创 app:activity生命周期-onCreate->onResume(2)

可参考博文Android Activity生命周期是如何实现的:https://www.jianshu.com/p/27d06a6b7007zygote进程创建app进程后,调用app的入口函数main(AactvityThread的main)开始,至调用完成app的activity的onResume。时序图分为两部分:app main的流程app运行过程的主要流程app main流程体现app的运行框架:体现开始和结束app运行过程的主要流程体现app进程和system_serve

2020-09-03 16:56:30 413

原创 app:从launcher启动app(1)

参考博文Android Activity生命周期是如何实现的: https://www.jianshu.com/p/27d06a6b7007从launcher桌面图标启动app,进入app进程。

2020-09-03 16:42:03 297

原创 AMS: native crash处理

system_server启动过程会建立一个socket,其他进程出现crash,debuger进程会把收集到的信息发送给AMS中的crash处理线程。 // file: private void startOtherServices() { final Context context = mSystemContext; VibratorService vibrator = null; IStorageManager storageManager

2020-09-03 14:26:09 308

原创 AMS: 启动launcher(3)

参考博文app 启动流程:https://www.jianshu.com/p/8a1a29073c44主要跟进了主流程,旁支末节可以根据主流程按需分析。

2020-09-02 18:06:26 351

原创 AMS:启动(2)

第一部分: 创建AMS对象及启动服务// file: frameworks\base\services\java\com\android\server\SystemServer.javaprivate void startBootstrapServices() { ... // Activity manager runs the show. traceBeginAndSlog("StartActivityManager"); mActivityMan

2020-09-02 17:50:43 230

原创 AMS:类图(1)

AMS中有很多类,类之间的关系呢?非完全的类图,把常见类列出。

2020-09-02 16:10:33 284

原创 system_server:启动流程

涉及源码android-8.0.0_r1\frameworks\base\services\java\com\android\server\SystemServer.javaandroid-8.0.0_r1\frameworks\base\core\java\android\app\ActivityThread.javaandroid-8.0.0_r1\frameworks\base\core\java\android\app\ContextImpl.javaandroid-8.0.0_r1\fra

2020-09-02 15:46:38 738

原创 app_process: 总结(6)

概述app_process是由frameworks\base\cmds\app_process编译而来,是启动java世界的入口程序。在开机过程中,经由app_process启动的进程有:zygote进程system_server进程zygote进程作用启动system_server进程,也即system_process裂变app进程,为每个app其他socket事务处理zygote三个部分zygote运行分为三个主要部分:1、app_process创建虚拟机,设置虚拟机属性

2020-09-02 11:54:30 1512

原创 app_process: zygote处理socket消息请求(5)

涉及源码android-8.0.0_r1\frameworks\base\core\java\com\android\internal\os\ZygoteConnection.javaandroid-8.0.0_r1\frameworks\base\core\java\com\android\internal\os\Zygote.javaandroid-8.0.0_r1\frameworks\base\core\java\com\android\internal\os\ZygoteServer.jav

2020-09-01 16:18:10 425

原创 app_process: zygote启动到system_server(4)

涉及源码android-8.0.0_r1\frameworks\base\core\java\com\android\internal\os\ZygoteInit.javaandroid-8.0.0_r1\frameworks\base\core\java\com\android\internal\os\ZygoteConnection.javaandroid-8.0.0_r1\frameworks\base\core\java\com\android\internal\os\Zygote.java

2020-09-01 15:15:31 232

原创 app_process: zygote启动(3)

涉及源码android-8.0.0_r1\system\core\rootdir\init.rcandroid-8.0.0_r1\system\core\rootdir\init.*.rcandroid-8.0.0_r1\frameworks\base\core\java\com\android\internal\os\Zygote.javaandroid-8.0.0_r1\frameworks\base\core\java\com\android\internal\os\ZygoteInit.ja

2020-09-01 14:16:03 483 9

原创 app_process: 运行一般java可运行程序(2)

概述app_process作为工具,运行java程序。执行流程主要文件android-8.0.0_r1\frameworks\base\core\java\com\android\internal\os\RuntimeInit.java这个流程相对较少,不做赘述,时序图基本完全展示流程,并不是主流程跟踪。...

2020-09-01 11:09:19 629

原创 app_process: 启动java进程(1)

涉及源码Android\android-8.0.0_r1\frameworks\base\cmds\app_processAndroid\android- 8.0.0_r1\frameworks\base\core\jni\AndroidRuntime.cpp概述app_process是Android系统中一个重要的编译出来的可执行文件。该执行文件在开机过程中负责启动Android核心的进程zygote和system_server。app_process也可以用来运行可执行的java程序。主要流

2020-09-01 10:31:36 1922

转载 UML序列图总结(Loop、Opt、Par和Alt)

序列图主要用于展示对象之间交互的顺序。序列图将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。消息用从一个对象的生命线到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。序列图中涉及的元素:生命线:生命线名称可带下划线。当使用下划线时,意味着序列图中的生命线代表一个类的特定实例。2. 同步消息发送人在它继续之前,将等待同

2020-08-27 15:57:32 18711 1

原创 Android6.0手动制作U盘升级包

解压命令:unzip update.zip或者使用windows下的压缩工具打开压缩文件,删除不需要的文件1.修改system文件删除system目录下其它文件只保留build.prop文件,然后需要升级的文件对应进行更新。如果是更新apk也先要进行签名。2.修改updater-script脚本文件。\META-INF\com\google\android\updater-script修改模板如下,getprop(“ro.product.device”) == “rk3288” || abor

2020-07-22 16:36:36 990

翻译 使用Lint检查提高代码质量

使用Lint检查提高代码质量1、概述2、代码中使用标记2.1 概述2.2 在工程中使用标记2.3 一些标记的使用2.3.1 Nullness标记2.3.2 资源标记2.3.3 线程标记2.3.4 值约束标记2.3.5 权限标记2.3.6 返回值标记2.3.7 CallSuper标记2.3.8 自定义标记类型2.3.9 Keep标记2.3.10 代码可见性标记1、概述开发app,除了通过单元测试确保app满足功能需求,通过lint检查确保代码没有框架上的问题也很重要。使用lint工具,可以找到框架上设计较

2020-07-20 18:32:21 3200

原创 路由器

2020-07-17 10:02:55 121

翻译 AndroidStudio-apk瘦身

AndroidStudio-压缩apk1、概述2、打开压缩、混淆、优化功能3、R8的配置文件3.1 概述3.2 添加额外配置文件4、压缩代码4.1 概述4.2 自定义keep规则5、精化本地库5.1 概述5.2 支持本地代码crash分析6、压缩资源6.1 概述6.2 自定义需要保留的资源6.3 使能严格的相关检查6.4 删除无用的供选择的资源6.5 合并重复的资源7、混淆代码7.1 概述7.2 解析混淆代码后的栈信息8、代码优化9、分析解决使用R8的问题1、概述注: 一下文中app压缩功能,均指And

2020-07-16 18:04:31 1926

翻译 AndroidStudio-解决单个dex 64K接口限制

解决单个dex 64K接口限制1、概述2、关于64K接口限制3、避免64K接口的限制4、多dex的一些配置5、编译时优化多dex6、测试多dex app1、概述当app和依赖的库,所有的接口数超过65536,编译时会遇到错误,提示接口超过了限制,log如trouble writing output:Too many field references: 131000; max is 65536.You may try using --multi-dex option.老版本编译系统会报一个不同形

2020-07-15 17:57:38 382

翻译 AndriodStudio实用小技巧

AndroidStudio杂记1、优化编译速度2、分析编译过程1、优化编译速度实时更新编译工具:SDK tools、gradle plugin到最新创建不同的编译变体,代码同步使用单个变体同步单个变体同步代码方法:File > Settings > Experimental > Gradle (Android Studio > Preferences > Experimental > Gradle on a Mac) ,勾选“Only sync the act

2020-07-14 20:01:08 288

iperf_test.rar

device端切换配置,pc端使用python脚本自动适配命令测试

2021-05-15

selinux权限配置指南.pdf

根据Android selinux官方文档,结合实践,总结梳理切合实际开发的sepolicy配置文档

2021-01-21

Android systrace运行需要的资源

在windows命令行运行systrace,需要安装python2.7.x工具,如果windows支持pip工具,安装其他工具会方便很多。该资源包括python2.7.x软件及pip安装包

2020-12-17

MonkeyTest2.0.tar.gz

脚本可配置抓取不同log,方便Android开发抓取log;脚本使用shell语言编写,在实践中已使用

2020-02-29

flushcache.rar

Android系统运行一段时间后,kerel缓存会占用很大内存,可以通过主动释放,而不触发oom。脚本提供了设置不同水线,触发释放缓存

2020-02-29

射频卡文档及fm17550设备开发代码

射频卡协议ISO14443中文板 doc\pdf格式文件;fm17550 rfid设备的驱动代码,经实际测试可用,代码仅实现typeA协议及仅获取卡的uid

2019-11-22

蓝牙总结.zip

工作中,Android系统蓝牙开发的一些总结,包括学习资源、系统集成驱动、调用流程等。

2019-10-03

design_patterns.zip

在linux上运行的24中设计模式编码及可执行文件

2019-10-03

svn命令再封装

再封装svn命令,查看文件状态和上传文件更方便

2017-01-14

性能优化工具

介绍apk开发中性能优化工具,如Lint、TraceView、UI优化分析、内存泄露分析(MAT)等工具,工具的使用均有实例分析.pdf

2015-11-16

android apk开发单元测试

开发Android apk中,使用Android framework中提供的测试类,方便验证实现的功能,可以使功能提前验证,达到apk的健壮性验证。主要说明了如何使用AndrodTestCase,一起组件测试等,适合Android apk单元测试入门学习。如有不妥之处,欢迎在评论中反馈

2015-11-16

空空如也

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

TA关注的人

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