![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android系统
文章平均质量分 84
峥嵘life
目前职业:android开发工程师
2016年江西农业大学计算机信息工程学院毕业
展开
-
Android14 以太网共享功能 相关代码简介
Android 的以太网共享功能是啥?其实就是 Android设备接入一个网线后,再接入电脑,电脑就可以分配到到一个ip;这里的Android 设备就相当于一个路由器。如果Android设备可以正常上网,那么电脑也是可以上网的;Android 的以太网共享功能简单的说就是把Android设备的网络通过网线的形式共享给其他设备。Android手机设备基本没有网口,可以通过usb Hab转接网口;一些调试用的Android 设备是保存有网口的,可以直接接入网线。原创 2024-08-25 19:04:08 · 479 阅读 · 0 评论 -
Android 系统连接WIFI显示网络连接受限分析处理
Android 系统连接WIFI提示网络受限处理这个是比较常见的问题了,这里简单记录一下。Android原生系统连接国内wifi网络会提示不可用,之后显示网络受限,但是实际可以上网;连接国外VPN网络是没有这个问题的。这个问题的原因就是系统连接上wifi后校验网络的时候,使用的是一个国外的url地址,但是国内外访问这个地址是无法返回数据的,所以系统才会判断该wifi无法连接网络。要解决这个问题,有两种方法:一个是替换了校验网络的url地址,另外一个是去除这个校验过程。原创 2024-08-25 19:02:33 · 634 阅读 · 0 评论 -
Android14 蓝牙设备类型修改
Android 蓝牙设备类型有啥用?就是显示蓝牙类型作用。Android设备打开蓝牙后,其他手机可以搜到该蓝牙设备,一般显示为电话或者平板。但是很多源码编译出来的系统默认是显示耳机类型,那么如何修改呢?如果是Android11 或者更旧的版本可以参考:XXX.h //不同的方案具体目录不同,一般在device或者system#define BTA_DM_COD {0x5A, 0x02, 0x0C} // 手机端搜索到的蓝牙显示手机图标。原创 2024-08-18 18:40:12 · 1199 阅读 · 0 评论 -
Android14 Settings属性断电上电不记忆问题分析解决
Android 系统如果修改了Settings属性后等几秒再断电上电会有属性未保存的情况。比如,开关wifi和时间同步等开关,修改开关状态后,进行断电上电关开机 会发现有状态不保存的问题。wifi开关或者同步时间开关这些数据都是Settings.Global属性保存在data目录下的文件数据。一般手机和平板断电不换马上关机,是有大屏设备或者机顶盒等设备会出现这个问题。之前Android9不记得是否会有这个问题了,但是Android13 和 Android14 是必现的。原创 2024-08-18 18:37:41 · 764 阅读 · 0 评论 -
Android14 大屏开机后蓝牙可搜索但无法连接分析解决
Android14 如果在开机后设置蓝牙可被搜索到和可以连接,但是实际其他设备搜到后点击配对,系统不弹框提示配对,具体原因是Android14 不允许后台配对导致。如果有相关需求可以进行了解一下。原创 2024-08-09 19:21:40 · 932 阅读 · 0 评论 -
Android14 WPA2和WPA3 类型的WiFi网络连接
Android WiFi网络类型常用就是WPA/PA2,Android10之后很多手机支持了WPA3 网络的连接和热点WPA3类型设置。开发过程中是有遇到WPA3网络无法连接的问题,之前方案WPA3网络是可以用WPA2的配置连接成功的,但是Android14的MTK方案上不行了。本文的分析处理事对自己设置应用上的优化,原生设置应用是可以正常连接WPA3 网络。原创 2024-08-09 19:02:35 · 529 阅读 · 0 评论 -
Android EDLA项目 5G热点打开失败分析
Android 13 外销国外的产品都要过EDLA认证了!EDLA认证的项目基本都是默认集成GMS Google mainline 和开启KPI;所以系统会自带了谷歌的很多apk和apex等数据,会造成系统某些代码修改没有作用。//Java 代码--Connectivity//Java 代码-- Wifi虽然部分模块的代码无法修改,但是还是要进行分析验证,谷歌集成的代码和原生代码是差不多的,主要差别就是res的默认属性可能有差别,所以系统代码逻辑还有要看的,这样才能更准确的定位问题。原创 2024-07-18 19:55:50 · 1169 阅读 · 0 评论 -
Android13 应用代码中修改热点默认密码
Android 有些情况会有修改热点信息的需求,比如修改热点默认名称、默认密码登信息。但是Android13 或者更新的代码,外销国外的设备都要通过EDLA验证了,集成谷歌那套代码,无法修改 packages\modules\Wifi 的代码,所以无法修改热点的默认信息?其实办法肯定还是有的,只要在系统第一次启动时通过WifiMannager接口获取wifi信息,再修改一次热点的信息即可。如果有需求都可以看看下面的实现代码。修改热点其他默认信息也可以同样参考。原创 2024-07-18 19:41:48 · 1228 阅读 · 1 评论 -
Android13 串口控制是能wifi adb实现
Android 系统开发初期调试,一般有串口功能调试,但是可能没有adb功能。adb功能比串口调试方便一些,比如可以直接传输文件,定向打印日志到电脑,投屏,安装电脑中的apk等功能。目前网上是没有详细分析的文章的。原创 2024-06-28 16:41:03 · 1176 阅读 · 0 评论 -
Android 使用adb操作WiFi连接扫描等相关指令
Android系统调试是,如果没有系统原生设置应用又需要调试验证WiFi功能时,可以使用一些指令来验证调试WiFi相关功能,最常用的就是 svc wifi enable/disable,或者使用iv dev来验证,但对于AP功能就没办法验证了,并且可调试功能比较少,其实Android系统自带有组很强大的shell指令集,这里记录下平时使用的cmd wifi 相关指令。系统初期开发或者定位一下wifi、热点问题会比较有用。原创 2024-06-28 15:11:56 · 3374 阅读 · 0 评论 -
Android 蓝牙配对Settings应用里面的简要流程记录
本文只是简单分析一下原生设置Settings中蓝牙配对的大致流程,具体细节有需要的自行研究。另外我这里的开发平台是AML平台的,所以会有Settings和TvSettings,其实这两个应用都会监听到蓝牙配请求,都会进行处理,这也是为啥会出现两次蓝牙配对弹框确认的情况。//监听蓝牙配对广播//;蓝牙配对广播@Override//设置蓝牙配对//关闭广播传递,防止原生设置监听到配对这里是监听到蓝牙配对后,后台直接确认配对,不用点击系统Settings的配对对话框就会确认配对。原创 2024-06-15 17:46:00 · 1002 阅读 · 0 评论 -
Android13 蓝牙协议属性配置详解
Android系统中蓝牙协议是否使能一般是通过一个属性值,如果这个属性值设置为false,会导致这个协议的服务未启动,也就是说这个蓝牙功能会没有作用。比如 Android 蓝牙传输文件协议是opp,如果opp未使能,那么整个系统是不支持蓝牙文件传输的。在Android13之前的版本,我们可以通过 config.xml 中的 profile_supported_a2dp 属性控制蓝牙的某个协议是否使能。这些属性是res属性,只能在资源文件中修改,还不方便查询。原创 2024-06-15 15:22:36 · 1849 阅读 · 0 评论 -
Android 系统设置拉起后台非全屏应用不隐藏前台应用
Android 原生流程中,如果切换后台应用界面,会先执行返回Home界面,再切换到新的应用界面;验证方法:手机打开一个应用1界面,底部往上滑,切换一个之前的后台应用2到前台,左右滑动退出应用2,发现回到的是Home界面而不是应用1界面。原生在startActivityFromRecent时,先回到Home了。但是Android 大屏设备,一般是需要显示多个应用,界面部分应用都是悬浮Activity,理想效果是:不返回Home界面,直接拉起后台应用。下面是实现的代码,其实就是在关键方法返回就行。原创 2024-05-19 12:25:30 · 411 阅读 · 0 评论 -
Android14 普通应用registerReceiver注册广播报错One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be
Android14 普通应用注册广播registerReceiver会报错,提示需要添加一个参数RECEIVER_EXPORTED 或者 RECEIVER_NOT_EXPORTED;系统framework或者系统应用是不会报这个错误的!这个问题比较好解决,加一个参数就行,但是网上目前没有人对这个问题今天深入分析。本文对registerReceiver报错进行分析,具体到哪个类哪行代码报错,分析了解后对于系统其他相关报错能有个认识,或者有分析思路。原创 2024-04-30 14:54:19 · 5795 阅读 · 9 评论 -
Android13 源码环境编译app源码报错AndroidManifest.xml.fixed分析解决总结
Android13 从Studio正常编译运行的app代码在源码中编译 有可能报错:AndroidManifest.xml.fixed …网上说法很多,有的说是添加android:appComponentFactory=“XXX” 和 tools:replace="XXX"就可以。Android·13 之前的方案使用上面的属性添加可能有效,这个修改主要针对包冲突问题(support和androidx ),原创 2024-04-30 09:21:33 · 1726 阅读 · 2 评论 -
Android13 设置固定热点ip地址192.168.43.1
Android 热点ip一般的系统都是随机生成的,地址一般是:192.168.XX.XX如果要设置成一个固定的ip地址,就需要适配系统代码。相关的适配代码主要都在 IpServer.java 里面。为啥要设置固定热点ip?一般是投屏软件需求,或者其他一些开机或者打开热点后被自动连接场景的需求。原创 2024-02-26 09:05:46 · 7655 阅读 · 2 评论 -
Android13 系统源码适配安装可卸载的三方apk应用
本文主要介绍 手机的三方应用比如游戏,微博等应用,在源码中如何默认配置到手机中的。Android手机中的系统应用是无法手动卸载的,但是这些三方应用安装后是可以手动卸载的。源码编译中配置系统应用是比较简单的,只要在apk文件并且再Android.mk或者Android.bp中进行配置即可。但是如果要默认配置三方应用确实有点麻烦,网上很多文章讲得都比乱,大部分只是贴了相关代码,基本没有介绍完整流程和分享解决配置过程还有一些编译报错。原创 2024-02-04 12:42:35 · 1963 阅读 · 0 评论 -
Android.mk和Android.bp的区别和转换详解
简单的说:Android.mk和Android.bp都是用来编译出类库.jar,应用文件.apk,动态库.so,静态库.a等等作用。Android.mk就是一个GNU make语法的脚本文件。Android.bp文件是Android 7.0及更高版本中引入的一种构建脚本文件,是使用Starlark语法编写的,它是一种基于Python的轻量级脚本语言。他们的关系如下:ninja是一个编译框架,系统会根据相应的ninja格式的配置文件进行编译。原创 2024-01-19 18:37:40 · 2858 阅读 · 5 评论 -
Android系统目录priv-app 和app 详解
Android4.4增加了/system/priv-app/目录,那么它与/system/app/目录有什么差别?本文主要从定义,作用,具体效果等方面进行分析。有一些是网上没有介绍到的内容。如果只是知道 priv-app 目录比 app目录权限大一点,但是不了解具体区别的可以看看。(1)普通应用。只用到了普通权限,比如上网权限等等。(2)system/app 系统应用,用来可以限制无法手动卸载,对系统权限没有要求的情况,无法调用系统api。原创 2024-01-19 18:32:06 · 2999 阅读 · 0 评论 -
Android.bp详解+入门必备
Android.bp 就是为了用来替换 Android.mk 一个脚本语言文件。如果学习过Android.mk,在学习一下Android.bp应该是很easy的,如果不是很熟悉可以学习了解一下。Android.bp和Android.mk作用都是一样的,在系统源码中用来编译出类库.jar,应用文件.apk,动态库.so,静态库.a作用。其中关键的就是模块类型定义和不同的属性定义。Android.bp文件用类似json的简洁声明来描述需要构建的模块。原创 2024-01-16 18:18:21 · 6564 阅读 · 2 评论 -
Android.mk详解+入门必备
网上有很多关于Android.mk详解的文章,但是感觉比较散,所以有必要写一篇更加完整一点的,更加容易入门一点的文章。Android.mk 博客介绍 :简单的说:Android.mk就是一个GNU make语法的脚本文件,用来编译出类库.jar,应用文件.apk,动态库.so,静态库.a作用。其中关键的就是include类型和不同的属性定义。本文主要对编译 apk 的 Android.mk 文件进行举例和介绍,包含完整示例的展示以及重要属性的介绍。编码类型和关键字。原创 2024-01-16 18:07:45 · 3440 阅读 · 0 评论 -
Android 打开热点2.4G系统重启解决
Android 设备开机后第一次打开热点2.4G系统重启?以5G形式打开热点没有问题!这个问题咋回事呢?和底层驱动的人一起分析了一下,本文进行分享一下分析和解决过程。这种问题一般应用开发不会遇到,只有一些系统开发,或者系统新方案调试可能会遇到。查看了AndroidRuntime 和crash 日志,重启前没啥异常日志。这种情况一般是底层/驱动未完全适配导致。原创 2024-01-06 14:32:12 · 1606 阅读 · 2 评论 -
Android 某个应用缺少特殊权限导致系统一直重启解决
系统一些应用会使用到特殊权限,这时候要在系统配置一下否则系统会一直重启。出现该问题的时候,系统一直显示开机Log界面,无法正常进入Android系统界面。下面一起分析总结一下吧。本文不仅正文有学习价值,后续的延伸介绍内容也是有学习价值的。framework 定义的所有 权限都是有定义包含 protectionLevel 等级的,主要等级有:普通,运行时,权限,特殊。原创 2024-01-06 14:23:05 · 1910 阅读 · 0 评论 -
Android13 热点默认5G频道配置修改
Android开发中经常要设置默认热点,名称,热点密码,是否是5G频段。之前也有对默认名称和密码进行分析的文章,但是热点频道没怎么看,热点频段对传输性能还是比较重要的,有的平台默认就要5G,查看代码发现默认是2.4G热点。本文对 Android 默认热点5G频段配置 进行分析。wifi信息保存位置:热点信息保存位置:热点的信息文件包含了:热点名称,热点密码,热点频段和信道值等基本信息;wifi 的信息文件包含了:连接过的wifi名称,密码,MAC地址等信息。原创 2024-01-02 20:55:28 · 3764 阅读 · 1 评论 -
Android 实现热点开机后自动开启
Android 热点是有api设置永久开启,热点名称,热点密码等接口,但是“永久开启”实际上是不自动关闭,重启设备后热点并不会自动开启。Android Wifi实现开关状态记忆是基于Settings.GLOBAL.WIFI_ON属性,所以热点如果要实现状态记忆那么也是要设置一个Settings属性或者prop属性,系统启动后判断属性决定是否启动热点就可以实现热点状态记忆了。Android Wifi有自己的服务WifiService和服务实现WifiServiceImpl,原创 2023-12-21 20:33:00 · 4110 阅读 · 2 评论 -
Android13 Wifi启动流程分析
本文对Android13 wifi 开启流程进行梳理,有需要的可以看看。如果遇到wifi 打不开问题,可以依照这个流程进行分析,看看具体是哪个流程出现问题。如果后续需要分析比Android13 更新的代码可以对比参考,毕竟Android11的代码变动比较大。本文最后有流程总结,代码分析过程还有最大一个亮点,每个类的流程分析都标志了数字,避免读着读着就迷路了。最后还有wifi开关相关日志过程分析。原创 2023-12-21 20:16:09 · 3183 阅读 · 4 评论 -
Android 蓝牙相关广播介绍
本文主要介绍Android 蓝牙相关的广播,并非硬件相关的蓝牙广播信号,而是蓝牙app中的广播接收器onReceive 的蓝牙相关广播。最近刚好开发了一下蓝牙相关的功能,所以进行一些知识总结和介绍,本文应该是全网最面的接收Android广播介绍知识的文章。如果上面日志过程没怎么看的,那么日志总结可以看看。重要过程,日志里面主要包含connection状态,acl_connected,bond等信息。原创 2023-12-12 18:25:28 · 1950 阅读 · 1 评论 -
Android13 不能静态注册的几个广播
本文介绍一些广播相关的知识,主要是静态广播注册无效的介绍。其实从Android 8.0 就开始有这个问题的,只是本文的源码是基于Android13 分析的。原创 2023-12-12 18:23:53 · 1762 阅读 · 0 评论 -
从Android源码中生成系统签名文件
本文介绍如何从Android源码环境中生成签名文件。注意,需要源码环境哦,window环境是会报错的!原创 2023-12-09 17:58:20 · 1776 阅读 · 0 评论 -
Android 设置20点触摸
增加Android触摸点,一般是在商显的Android大屏上有一定的需求,在普通的Android设备基本不用。首先,Android系统默认最多支持16点触摸。如果要增加有效触摸点,需要更新对应的触摸框驱动ko文件;还要再framework中进行代码适配。关于触摸框点数增加的文章,网上也有不少,但是CSDN上基本都是要会员才能看,这里给大家介绍一下。原创 2023-12-06 15:57:47 · 699 阅读 · 0 评论 -
Android 蓝牙弹框接收传输的文件实现
Android 原生系统蓝牙接收是在通知栏显示和操作,但是部分定制设备比如大屏或者盒子设备是没有通知栏的。如果要接收蓝牙文件就要自己接收蓝牙广播进行弹框提示,大概包括:确认接收,显示接收进度,确认取消/完成接收等弹框和实现,具体修改就要适配系统的蓝牙应用。本文基于Android13 系统蓝牙应用Bluetooth文件传输Opp部分代码适配进行介绍。也许你工作中不一定有这个需求,但是安卓屏显开发大概率是有这个需求的,部分有兴趣的并且有系统源码编译运行条件的,可以尝试修改系统源码试试,原创 2023-12-06 15:16:11 · 1286 阅读 · 0 评论 -
Android 10-13鼠标右键返回功能适配
Android 原生代码代码中接入usb鼠标,点击右键,一般默认是没有反应的。如果要鼠标点击右键设置成返回功能,就要适配系统代码。一般Android板子调试初期没有触摸的情况,适配鼠标右键,是对操作使用是带来较大方便的。本文介绍不同版本的Android 鼠标右键返回功能适配。其实不管什么方案或者版本只需 getButtonState 在点击右键的情况返回的键值是 AMOTION_EVENT_BUTTON_BACK 就会执行返回功能。原创 2023-11-22 06:00:00 · 1627 阅读 · 0 评论 -
Android13分享热点设置安全性为wpa3
Android 网络加密类型WPA3,比WPA和WPA2 安全性强一下;有些客户强制要求支持WPA3,那么就需要系统进行一些适配了。Android手机上热点分享显示的安全性部分手机可以选择WPA3,比如红米12(Android12),一加Ace2(Android13);但是其他很多手机都没有选择加密类型,比如Nova6(Android12)、红米(Android10),谷歌Piex4(Android13)。以前只分析过Android11 ,这里发现Android13 有些区别,记录一下。/**原创 2023-11-11 15:55:34 · 4748 阅读 · 10 评论 -
Android13 安装谷歌GMS导致打开蓝牙失败解决方法
Android13 上安装谷歌GMS相关服务后,无法打开蓝牙,打开蓝牙马上异常导致自动关闭蓝牙。这个问题国内估计大部分开发者不会遇到,但是如果是面向国外用户需要安装谷歌相关服务可能会遇到。这个问题在Android13 几个不同芯片供应商方案都有遇到,说明这个问题在Android13 上是个共性问题,Android原生代码的问题。本文主要记录一下。查看蓝牙相关日志: BluetoothManagerService 、droid.bluetooth 、BluetoothBondStateMachine。原创 2023-11-05 07:00:00 · 1129 阅读 · 0 评论 -
Android13 实现有线网络和wifi共存
Android一些的定制设备,比如商显大屏或者Android盒子,一般是wifi或者有线网络。Android 系统Framework进行一定适配后,可以实现wifi和有线网络端口都打开的,进而在App端即可实现通过代码控制选择使用wifi或者有线网络进行网络请求。Android13 上代码有较大差别,这里也进行记录和介绍。原创 2023-10-21 07:00:00 · 3336 阅读 · 17 评论 -
Android11 实现有线网络和wifi共存
Android 系统Framework进行一定适配后,可以实现wifi和有线网络端口都打开的,进而在App端即可实现通过代码控制选择使用wifi或者有线网络进行网络请求。本文只介绍wifi和有线网络端口同时打开的实现,app代码请求特定网络另外文章介绍。Android 默认是只保留打开一个网络的,其他网络是关闭的;手机一般是wifi或者Sim卡;一些的定制设备,比如商显大屏或者Android盒子,一般是wifi或者有线网络(以太网)。原创 2023-10-18 20:29:36 · 3770 阅读 · 11 评论 -
Android 底层新增按键系统上层适配详解
在Android系统 上外界按键板或者在原有的按键新增个按键都是需要内核和系统层进行代码适配。原创 2023-10-11 20:12:46 · 1124 阅读 · 0 评论 -
Android13 按键kl文件优先级详解
本文专门讲解一下Android 按键接收和处理作用的键值kl文件的选择过程,有需要的可以了解。本文具体逻辑和调试是使用Android13代码和系统。原创 2023-09-23 07:30:00 · 1437 阅读 · 0 评论 -
Android adb shell svc 知识详解
这个命令可以用来控制电源管理,wifi开关,数据开关(就是上网流量),注意需要root权限。有兴趣的可以一起学习一下。原创 2023-09-09 17:05:38 · 2441 阅读 · 2 评论 -
Android 13 网络 Adb相关流程深入分析研究
通过代码分析发现Android13 上对 网络adb 进行了限制!Android13原生代码要求:必现连接上某个wifi,才能进行adb ,并且切换wifi或者关闭wifi都是会停止adb。并且Android13 上 wifi adb 端口号每次是变化的,这个也是很不方便的!如果要做成Android11 或者之前一样,设备连接WiFi/有线网络后电脑可以直接进行adb连接,就要对系统代码进行适配修改。原创 2023-09-07 12:41:20 · 1439 阅读 · 1 评论