- 博客(26)
- 收藏
- 关注
原创 Git常用命令整理
本文是我对在实际工作中用到的Git命令的汇总。同时也分享给需要的人。配置Git信息git config --global user.name 用户名;//配置Git用户名 git config --global user.email 邮箱名; //配置Git邮箱 git config --global commit.template 格式文件路径 //配置Git提交模板 git config --global core.editor "vim" //设置默认编辑器为vim git c...
2021-04-23 15:39:28 403
原创 Android ANR原因和流程总结
1、概述ANR即Application Not Responding(应用程序无响应),一般在ANR的时候会弹出一个应用无响应对话框,同时会候产生一个日志文件trace.txt,位于/data/anr/文件夹下面,trace文件是Android Davik虚拟机在收到异常终止信号时产生的,最常见的一个触发条件就是Android应用中产生了FC(force close)。由于该文件的产生是在DVM中的,所以只有运行DVM实例的进程才能产生该文件,也就是说只有Java代码才能产生该文件,App应用的Nativ
2021-04-13 17:08:07 2651
原创 Android Studio项目中drawable和mipmap目录使用总结
背景AndroidStudio上创建的新项目中会包含drawable文件夹和一些mipmap的文件夹。如下图:而且它们里面都放入了一些图片。这时我们就会想到应用的图片要放到哪一个目录呢?放到mipmap目录和drawable目录有什么区别?下面是我对mipmap和drawable文件夹的一个简单总结。drawable和mipmap目录本质多个drawable和mipmap目录是为了Android设备的图片适配。由于Android 设备具有多种屏幕密度,为了让这些设备获得良好的图形质量
2021-04-12 17:19:12 3753 2
转载 Android Studio 中文注释导致编译失败的解决方法
转载于:https://blog.csdn.net/csdn_susan/article/details/106253733今天编译javaLib是失败提示:����: ����GBK�IJ���ӳ���ַ�。网上查询后解决了,这里转载记录一下。1. 问题背景使用AndroidStudio4.1 ,编译项目编译失败,提示一串乱码����: ����GBK�IJ���ӳ���ַ�,并指向中文注释行。。2. 原因分析由于中文注释默认是GBK,AndroidStudio能够正常显示,但是编译的时候
2021-04-08 10:43:53 3966 2
原创 java Lambda表达式
java8已发布四年之久,但是一直没研究java8的相关新特性,前几天有点闲,就学习了java8的新特性之一lambda表达式,下面就按照我的理解讲讲一些用法。刚开始使用lambda表达式的时候,感觉不习惯,但是使用了以后发现还是很好用的,简洁,明了,代码少lambda表达式的语法格式如下:(parameters) -> expression或(parameters) ->{ statements; }以下是lambda表达式的重要特征:可选类型声明:不需要声明参数类型.
2021-04-07 11:12:41 276
原创 Android 以太网调试命令的使用
一、列出路由表条目ip命令的路由对象的参数还可以帮助你查看网络中的路由数据,并设置你的路由表。第一个条目是默认的路由条目,你可以随意改动它。在这个例子中,有几个路由条目。这个结果显示有几个设备通过不同的网络接口连接起来。它们包括WIFI、以太网和一个点对点连接。假设现在你有一个IP地址,你需要知道路由包从哪里来。可以使用下面的路由选项(译注:列出了路由所使用的接口等):iprouteget10.42.0.47...
2021-04-06 15:41:04 1584
原创 ADB常用命令整理
本文是我对我再工作中实际用到的adb命令的一个记录。同时也希望能帮到刚入门的新人。Android Debug Bridge,安卓平台调试桥,是连接Android手机与PC端的桥梁,通过adb可以管理、操作模拟器和设备,如安装软件、查看设备软硬件参数、系统升级、运行shell命令等。总结常用命令有:查看adb命令帮助:adb help 开启服务: adb start-server 关闭服务: adb kill-server 查看设备: adb devices 获取管理员权限:adb ro.
2021-03-31 15:20:54 7220 1
原创 Android-makefile学习总结
一、Android.mk概述Android.mk file用来向编译系统描述你的源代码。具体来说:-该文件是GNU Makefile的一小部分,会被编译系统解析一次或更多次的build系统。这个文件的语法允许把你的源代码组织成模块,如:静态库、共享库(将被安装/复制到您的应用软件包);我们可以在每一个Android.mk file中定义一个或多个模块,也可以在几个模块中使用同一个源代码文件。二、Android.mk的基本构成LOCAL_PATH := $(call my-dir) ...
2021-03-15 17:19:04 1843 1
原创 Android AndroidManifest的属性总结:android:exported
工作中碰到了一个AIDL服务失败的BUG,这里记录一下。AIDL接口的Service的AndroidManifest中android:exported="false",导致该服务不能够跨进程启动。需要改为:android:exported="true"
2021-03-11 11:12:37 1585
原创 Android 9.0 开机后打开Wifi流程和Wifi状态值的保存
Android 9.0 Wifi开关状态值的保存和开机后打开Wifi的流程 我们在Android系统关开机之后会发现Wifi仍然保持着上一次关机时的状态,而且是进入home界面之后Wifi就会自动打开。我们就会想Wifi开关状态是保存在哪里呢?有是谁去打开Wifi的呢?是Settings应用呢还是在Launcher呢;下面我们就简单分析Wifi开关状态值是保存逻辑和开机后打开Wifi的流程。一、Wifi开关状态值是保存我们每次打开关闭wifi都需要调用WifiManger.setWifi...
2021-02-23 20:19:44 2528
原创 Android应用启动时间优化
Android应用启动时间优化本篇是我在参考其他大神的文章后再项目中对应用启动时间优化的一个总结。欢迎指出不足之处,然后一起讨论。1.冷启动和热启动的简述。安卓应用的启动方式分为冷启动和热启动两种。1、冷启动:启动应用时,系统中不存在此应用的进程;需要系统先去创建一个新的进程分配给该应用。因为创建一个新的进程,所以会先初始化Application类,再初始化MainActivity类。这种启动方式就是冷启动。2、热启动:启动应用时,系统中已有该应用的进程(如按back键、home键,该应
2021-01-26 15:51:00 935
原创 Android Studio提高framework.jar的优先级
因为项目中用到随机数进行握手配对,使用到了Random和SecureRandom。参考的这一篇文章很详细。这里转载一下下。https://blog.csdn.net/qq877728715/article/details/104376304?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-4.control&depth_1-utm_source=distribute.pc_relevant.none-ta
2021-01-13 18:28:49 2249 1
原创 Android WifiSettings页面WIFI状态更新过程
我们在WiFiSettings界面连接WiFi的时候会看到WiFi Preference的summary状态会从正在连接切换到获取ip再切换到已连接的状态,这一篇就分析状态更新过程。一、 WifiTracker.java 我们知道WifiSettings是监听了WifiTracker 的onAccessPointsChanged()来刷新状态的。我们先分析下哪里调用了onAccessPointsChanged()。再看下哪里调用了conditionallyNotifyListeners()。
2020-12-19 11:27:29 3000 1
原创 Android 9.0 Wifi连接AP后显示IP地址流程
这一篇分析Wifi连接AP后显示IP地址流程,AP连接成功后wpa_supplicant会上报连接状态到SupplicantStaIfaceHal。所以就从SupplicantStaIfaceHal开始。1 SupplicantStaIfaceHal.java收到状态改变后通过WiFiMonitor上报的事件2 wifiMonitr.java这里是发送消息NETWORK_CONNECTION_EVEN。WifiStateMachine接收处理消息。3 WifiStateMachi
2020-12-19 10:47:50 1143 1
原创 Android 9.0 WiFi 状态机总结
一、 工作原理简述状态机就是一个定义了很多状态的机器,它收到消息后,会根据消息来切换这个机器的状态。状态机中的每一个状态是由State类的实例表示,State实例必须实现processMessage方法用来处理消息。并且可选的实现enter/exit/getName三个方法,enter/exit 等价于类的构造方法和销毁方法。start方法启动状态机。addState方法给状态机添加状态。enter方法初始化初始状态。执行完了start方法后状态机就可以接收处理消息了。当消息到来以后,当前状态就会调
2020-12-19 10:14:31 1257 1
原创 Android 9.0 Wifi关闭流程
这一篇简单分析IWifi关闭的代码执行流程。1、分享一张Wifi关闭的大致流程图2、代码执行过程2.1 WifiManager.java2.2 WifiServiceImpl.java这里发送了CMD_WIFI_TOGGLED消息到WifiController。2.3 WifiController2.4 WifiStateMachinePrime.java这里主要做了两个操作:1. 发送了广播WIFI_SCAN_AVAILABLE;2.清除
2020-12-19 10:07:02 1423 1
原创 Android 9.0 Wifi断开AP过程
本文对WIFI断开已连接的AP过程进行分析,整个过程分为发送断开AP的命令和断开AP执行结果上报两个部分。一 、发送断开AP的命令1.1 WifiManager.java1.2 WifiServiceImpl.java1.3 WifiStateMachine.java1.4 WifiNative.java1.5 SupplicantStaIfaceHal.java这里下发断开指令到底层断开AP连接。下面再看下AP断开状态上报。二 、断开AP执行结果的上
2020-12-10 20:07:43 1704
原创 Android 9.0 Wifi连接AP过程
本文分析的是首次连接AP(没有保存参数的AP)的过程。这里分析连接AP(没有保存参数的AP)的过程。1 代码执行的简易流程图2 代码流程2.1 Settings应用2.2 WifiManager.java通过异步通道AsyncChannel来调用WifiServiceImpl的ClientHandler来处理SAVE_NETWORK消息。2.3 WifiServiceImpl.javamWifiStateMachine.sendMessage发送消息直接让Wi
2020-12-10 19:57:19 3402
原创 Android 9.0 WiFi 扫描结果上报和获取流程
本文是对wifi扫描结果上报和获取过程的代码逻辑分析总结。wifi扫描结果分为成功和失败。我们这里先分析扫描成功的上报和获取过程。WiFi扫描成功的上报和获取大致是由三条不连贯流程组成的,分别是通知framework和WifiTracker获取扫描结果以及应用主动获取扫描结果。1、framework获取保存扫描结果。大致的流程为:WificondControl-->WifiMonitor--> WificondScannerImpl-->WifiNative;2、WifiT
2020-12-09 23:19:46 3501
原创 Android 9.0 Wifi打开后的自动扫描流程
我们开启Wifi都是点击一下wifi开关会完成两件事情(1. 开启wifi,2. 扫描周围热点),本文就是分析一下Wifi开启后自动扫描出周围的热点的代码执行逻辑。先看下大概的流程图:图片来源于https://blog.csdn.net/liluo2013/article/details/85267691ClientModeManager.java在前面的WIFI开启过程中在ClientModeStateMachine类中执行调用打开Wifi后还把状态转换到StartedState。我们
2020-12-09 22:35:12 1759
原创 Android 9.0 Wifi打开流程
Android 9.0 Wifi开启执行流程代码具体执行流程:WifiManager.java路径:framework/base/wifi/java/android/net/wifi/WifiManager.javaWifiManager.setWifiEnabled()设置WIFI开启。WifiServiceImpl.java路径:/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiServiceI
2020-12-09 22:23:22 1687
原创 Android 9.0 WifiService启动流程
Android 9.0 WifiService启动流程主要通过代码的执行流程简单的分析了WifiService的启动流程。1. WifiService的启动简单时序图表示:接下来看下具体的代码实现逻辑:2. WifiService代码执行流程SystemService.java路径:frameworks/base/services/java/com/android/server/SystemServer.javaWifiService是在SystemServer.java的
2020-12-09 22:13:49 1737
原创 Android 9.0 Framwork Wifi源码学习目录
Android 9.0 WifiService启动WifiService的启动简单时序图表示:1.1、启动WifiService在SystemServer.java的 startOtherServices() 方法中,启动了WifiService,代码如下frameworks/base/services/java/com/android/server/SystemServer.javaframeworks/base/services/core/java/com/android..
2020-11-03 18:06:26 1372
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人