- 博客(542)
- 资源 (103)
- 收藏
- 关注

原创 书籍品读:我的世界(陈州)
这周买了一本书《我的世界》,用几天看了完了,感慨良多。他是一个无双腿的人,却能多次攀登五岳(东岳泰山、西岳华山、南岳衡山、北岳恒山、中岳嵩山);而我一个正常人,只去过一次泰山。对于他的传奇经历,我是由衷的钦佩,感觉很有必要分享给大家细细品读。人的不幸会有各种各样,但是勇于蜕变会使你的人生绽放不一样的光彩。永远有比你痛苦、悲凉、孤寂的人,但是在某个时候总是有机会可以选择人生方向;虽然不一定总是有这样的机会,虽然生活可能总是很苦逼;
2025-03-14 19:21:48
436

原创 Android14 串口控制是能wifi adb实现简介
adb功能比串口调试方便一些,比如可以直接传输文件,定向打印日志到电脑,投屏,安装电脑中的apk等功能。还有些情况是设备可以连接有线网,但是wifi有问题,上层接口无法打开adb,但是使用prop属性设置可以打开有线adb调试。有需要的可以收藏看看。本文只要介绍实现步骤,不详细介绍具体过程,adb相关过程之前已经分析过了,虽然有的过程分析不是很准确,但是对于定制化是很有作用的。(2)在设置界面或者 ifconfig命令 查看wifi或者有线的ip地址:(3)串口确认查看关键 adb 属性是否ok
2025-03-04 19:27:32
879

原创 Android 系统开发的指导文档
比如自定义View,动画,项目开发模式MVVP,跨进程通信AIDL,Socket通信,wifi、蓝牙、录音、录像、Settings等等等。深入研究 Android Framework 的源码,了解系统服务的启动流程、核心组件的工作原理、消息传递机制等,学习其中的 LiveData、ViewModel、Room 等组件,提升开发效率和应用的架构质量。如字符串、颜色、图片、样式等的定义和使用方法,学会在不同的设备配置下合理地管理和适配资源,
2025-03-04 19:23:59
988
1

原创 Android 15 的GRF平台开发说明
1、GRF ,Google Requirements Freeze 表示谷歌需求冻结某一个部分的需求冻结,后期改动会较小不影响正常使用;比如Android14-17底层内核和vendor逻辑基本不变;只需要适配Frameworks、APP、System 等固件即可使用最新版本的Android系统。2、下载一个GRF的源码,后续四个系统版本都可以用这个开发板进行升级简单的说就是Google后面会减少内核或硬件上的适配修改,主要适配上层逻辑,可以不用换新的硬件升级新的系统了。
2025-03-02 16:27:40
1035

原创 Android 使用adb操作WiFi连接扫描等相关指令
Android系统调试是,如果没有系统原生设置应用又需要调试验证WiFi功能时,可以使用一些指令来验证调试WiFi相关功能,最常用的就是 svc wifi enable/disable,或者使用iv dev来验证,但对于AP功能就没办法验证了,并且可调试功能比较少,其实Android系统自带有组很强大的shell指令集,这里记录下平时使用的cmd wifi 相关指令。系统初期开发或者定位一下wifi、热点问题会比较有用。
2024-06-28 15:11:56
11355
3
原创 Android Settings 有线网设置界面优化
快清明放假了,说点简单的,有线网设置,估计只对部分系统开发的人有点用。Android 原生设置应用好像大部分方案都是没有显示有线网设置界面的;从接触的方案看只有rk方案的原生设置应用显示了有线网设置界面,和热点设置界面是同级目录显示的。如下图所示:有线网DHCP自动获取模式下,是无法获取到ip的;只有在设置了静态ip的模式下,才显示ip和其他信息。如下图,所示:难道是RK从谷歌的一个调试分支下载的Settings源码?
2025-04-03 17:56:14
612
原创 Android 拉起开发者设置界面命令和代码实现
本文记录点简单的知识。1、原生设置--》关于--》点击七次“版本号”条目 (会提示:已打开开发者选项)2、返回主界面--》系统设置--》开发者设置界面有些情况,原生设置是隐藏的或者不想打开原生设置,如何直接拉起开发者选项呢?是否有命令或者代码可以实现呢?下面简单介绍一下。一般我们看Settings 有啥暴露界面,看 AndroidManifest.xml中的 暴露Activity 就可以。通过DevelopmentSetting 可以搜索到下面Activity<activity...
2025-04-03 17:37:58
596
原创 Android14 Settings应用添加有线网开关条目实现
背景:Android 原生Settings应用没有有线网开关条目;Tv平台一般是有有线网连接的,如果没有有线网控制条目是不太方便的;如果要在原生Settings添加有线网开关和显示有线网ip,要如何实现呢?目前主要的商显TV中,只有我开发的方案中有些原生设置Settings 在某些方案上有修改了原生Settings的添加有线网开关控制,视源、朗国、创维、三星那些都是没修改的。本文简单实现一下,有需要的可以参考修改。
2025-03-26 18:10:14
879
原创 Android AccessPoint 已连接的wifi信息未显示处理
一个wifi列表未显示已连接的wifi信息问题记录。虽然新版本的原生Settings应用基本不会遇到这个问题,但是万一遇到可以参考这个简单适配。背景:很久以前的项目代码,移植的Settings的代码,代码获取的wifi列表信息是使用SettingsLib的接口获取 AccessPoint 列表数据。目前只有wifi5的模组硬件会遇到这个问题,wifi6模组的硬件没有这个问题。有可能是底层返回的某个信息不符合正常逻辑,所以才出现这样的问题。本文只是简单记录一下,估计对大部分开发人员是没啥用的。
2025-03-26 17:38:07
1019
原创 Android14 系统左右声音通道设置代码
Android 系统左右声音通道设置在有些场景下会有用,信源或者多音箱的条件下可能需要设置,还有些需求比如:用户偏好设置、将声音定位到特定方向,提升沉浸感。比如耳机接入Android设备后,设置声音通道左平衡,只有左边的耳机出声;设置声音通道右平衡,只有右边的耳机出声;上面这样就可以简单验证系统左右声音通道是否有效。网上基本找不到系统级的设置左右声音通道的代码,即使使用AI工具也搜不到。网上设置左右声音通道都是针对某个播放媒体对象进行设置,并不是全局的。
2025-03-19 17:51:50
708
原创 Android14 Log.isLoggable判断的分析
Android系统代码或者系统应用代码中经常有一些Dug打印,是可以在调试模式中查看的;比如:if(Log.isLoggable(TAG, Log.DEBUG)) {XXX}或者定义 boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);后面有些打印使用这个DEBUG属性来决定是否打印某些日志。之前我不太懂,也有看过源码,但是看到了native再后面就追不下去了,就没管了。后面各种搜索和研究后又有了新的发现。
2025-03-19 16:51:21
847
原创 Android wifi的开关Settings值异常分析
有个项目需要通过开机后另外判断wifi的Settings属性值wifi_on进行wifi的一些处理。但是使用同一个系统软件包,烧录在两个板载有点差异的设备上,发现打开wifi后两个设备的wifi_on的值居然不一样;wifi开启状态一个显示为1;另外一个异常显示为2;代码值中只判断了值为1的处理,导致有些逻辑未执行。但是通过WifiManager获取wifi的开启状态,发现wifi又是开启的;有点奇怪,想分析看看。后面分析了一下系统的代码,有一些发现。下面简单分享介绍一下。
2025-03-14 19:14:52
1124
原创 Android6到Android15版本新增的功能和api
目前市场上Android手机大部分都是Android11-14的版本;2024年发布Android15了,现在已经开始准备开发Android15的系统代码了;但是对于Android15 或者之前版本的新增功能和api都没啥印象;本文简单总结一下,有兴趣的可以看看。
2025-03-02 16:43:21
1255
2
原创 DeepSeek简介和本地搭建
DeepSeek 是杭州深度求索人工智能基础技术研究有限公司推出的一系列人工智能产品及相关技术的统称。公司背景:成立于 2023 年 7 月 17 日,由知名私募巨头幻方量化孕育而生。
2025-02-22 18:14:11
1441
原创 DeepSeek本地搭建 和 Android
过年前看到DeepSeek非常火,很多小视频也说DeepSeek是如何如何强大。我也想搭建DeepSeek玩玩!简单搜了一下本地搭建DeepSeek的环境要求,发现要求居然那么高:完全符合它的要求的电脑估计要两三万以上。看了下我的电脑肯定达不到这个要求,估计大部分开发人员的电脑都没那么高的配置吧。难道一般人搞不了?其实不搭建DeepSeek环境也能玩 DeepSeek,目前是有免费的网页版和App软件。我试了一下网页版本和App软件,都是比较简单功能的对话,目前还没有抖音旗下的豆包好用。
2025-02-22 16:14:29
2581
原创 我的2024年终总结和2025年展望
1、2024国际或者国内部分大事(1)乌克兰战役,从疫情前打到疫情后,还在墨迹。(2) 2024年7月底举行了巴黎奥运会中国金牌数与美国并列第一,创国家队在境外夺取奥运金牌最多的纪录。(3)春节申遗成功中国春节正式列入中国非物质文化遗产(4)深中通道已于 2024 年 6 月 30 日 15 时正式通车试运营开车回家更方便了。最短400公里不到就可以开车回家。2、自己的事(1)上班比较正常,按部就班,有感兴趣的就记录总结了一下。并没有很大的突破。(2)上一年订的目标基本没完成,
2025-01-28 01:31:36
877
原创 Android wifi列表中去自身的热点
Android wifi列表中能搜索到自身的热点wifi?正常手机上都不会出现这个问题;可能是系统底层已经做了过滤处理。现实开发中Android设备的Wifi能搜索到自身热点也可能会存在。比如基于两个单独的wifi双模组硬件在设备上运行就有可能出现这个问题;之前同一个硬件上的双模组wifi硬件都是没有这个问题的。双模组wifi是为了更好支持wifi和热点隔离的硬件,Android 双模组的情况可能会存在wifi列表中搜索到自己的热点名称是可以正常连接,
2025-01-17 20:01:22
558
原创 Android wifi热点开关代码记录
wifi和热点开关的代码可以用WifiManager也可以调用ConnectivityManager的接口实现。下面记录一下。
2025-01-17 19:57:56
799
原创 Android13 系统签名应用编译调试说明
Android11之前一直可以用系统的签名文件编译系统签名apk,但是开发Android13 的系统应用后,就有点问题了,发现使用系统签名文件编译的系统签名apk安装到设备上会失败,以为搞不了了,但是看到有的同事是OK的,等了一段时间后分析处理了。本文记录一下这种系统签名应用调试的过程。我之前安装的Android Studio 版本是2021年的,Android Gradle 版本是6.5;后面发现安装2024年的Android Studio,并且使用Gradle8.7 就ok,
2024-12-19 19:29:38
1263
1
原创 Android Studio版本升级那些事
Android Studio目前最新版本是 2024.2.1 主要版本特征是为了更好支持kotlin代码的编译运行。2017年的Android Studio 版本已经支持kotlin的正常开发了;但是真正比较完善的kotlin编辑的版本是2023年的版本;我这里不是想讲AndroidStudio对kotlin的支持,因为系统开发代码中kotlin虽然有,但是不多,影响比较小。本文主要是记录一下,Android Studio旧版本无法编译安装Android13 以后的签名应用。
2024-12-19 19:20:51
2978
原创 Android 系统应用重名install安装失败分析解决
系统开发过程中,你会发现一些系统应用编译后无法直接安装成功,为啥?具体是为啥导致无法正常安装?如果要正常安装需要怎么处理?刚开始我以为是系统应用重名不能直接安装,但是发现有些系统应用是可以直接安装的;所以还是要研究看看。本文简单分析解决一下这个问题!后面复现关键就是 Android 的 persistent 属性,persistent(翻译:持久的) 属性是系统应用用来保活的应用和服务的。
2024-12-11 19:29:24
1602
原创 Android Studio新版本的一个资源id无法找到的bug解决
Android Studio 导入以前的项目发现资源文件明明有id声明了,但是无法Java代码中无法识别的问题。比如switch 的case R.id.textView: 会编译报错,这个textView 已经在res的布局文件中有声明了。gradle 6.5 没有这个问题gradle 8.7 就有这个问题新下载的Android Studio默认都是使用的最新的gradle版本8.7,当然也能兼容旧版本的gradle。
2024-12-11 19:26:18
1095
原创 Android Studio的AI工具插件使用介绍
iFlyCode 智能编程助手,基于讯飞星火大模型,提供代码生成、补全、纠错等功能,支持 Python、Java 等主流编程语言,数据集广泛,语言支持全面。文心快码是基于百度文心大模型的智能代码助手,能生成优质代码,提升编码效率。支持 100+种编程语言和 10+种 IDE,全面辅助研发。在百度内部广泛使用,代码采用率达 44%,降低学习成本,节省时间,加速业务迭代。通义灵码(JetBrainsIDEs)是阿里云的智能编码助手,提供实时续写、代码生成、单元测试、代码优化等功能,
2024-11-29 19:14:33
7033
4
原创 2024年几款免费的AI对话工具介绍
对于对于一些提问或者一些技术性问题,经常要用百度,但是里面回答太多太杂了,所以很多会用GPT工具进行提问会方便很多,得到的答案也是简洁明了。目前国内也是有很多GPT相关的AI工具,有的是要收费的,有的是免费的。AI工具不仅可以用来回答问题,还可以生成图片,生成内容,推理和代码理解等功能。AI工具或者网址,要用就用大厂的工具,比如百度,阿里,抖音,科大讯飞的,不仅功能多还免费,下面介绍几个国内外大型的免费AI工具。国内的 AI 对话工具。
2024-11-29 18:53:28
2395
原创 Android Toast信息定位分析介绍
Android Toast有时候莫名其妙的弹框,需要定位到是哪个应用发出,咋搞?系统开发的就没啥难度,可以直接在系统源码里面加个打印重新编包验证就行了,因为Toast需要传入上下文,所以通过上下文是可以获取到应用包名的,和Toast文本信息;但是如果不是系统源码开发难道就不行了吗,其实也是可以的,之前安装过一个“Android开发工具箱”的apk应用,开启无障碍模式下就可以监听Toast的信息,包括Toast的包名和文本。本文介绍一下,上面两种方式定位Toast 的代码实现。
2024-11-23 16:28:03
1251
原创 Android adb shell dumpsys audio 信息查看分析详解
Android 如果要分析当前设备的声音通道相关日志,仅仅看AudioService的日志是看不到啥日志的,但是看整个audio关键字的日志又太多太乱了,所以可以看一下系统提供的一个调试指令dumpsys audio 返回的信息进行定位分析,里面主要包含了AudioService启动时间,当前设备的音频流指向,音频流的声音大小,音频外设的连接情况,音频播放记录,音频外设连接断开记录等等信息。不同的Android 系统使用 dumpsys audio 命令返回的日志信息可能会有差异,
2024-11-23 16:12:13
2095
原创 Android13、14特殊权限-应用安装权限适配
Android13、14 的源码发现一个问题系统签名应用声明了应用安装权限,但是安装应用的时候还是没有安装应用权限,需要在原生Settings中的特殊权限设置一次权限打开才有安装应用权限。本文只介绍解决方法,里面framework的代码是实际项目的修改中拿来的,不是我自己研究的,不做过多分析。
2024-10-24 19:33:56
2851
原创 Android13 授予特殊应用权限代码
Android 权限类别有啥,网上很多是说有普通权限和危险权限,其实是不准确的。Android 权限分为普通权限,动态权限,特殊权限,私有权限。几种权限的简单说明:权限的使用都要在AndroidManifest.xml中声明就行,即使是系统应用也是要声明后才能获取到。1、普通权限: 不用申请直接能获取到;比如:INTERNET 网络权限2、动态权限:普通应用需要动态申请,系统应用直接能获取到;比如:WRITE_EXTERNAL_STORAGE 读写权限。
2024-10-19 19:04:30
1804
原创 Android adb 命令查询service相关介绍
adb查询系统中的service用什么命令?很多人会说是service list | grep XXXService但是你会发现四大组件的service并不能这样查询到,四大组件的Service查询,需要用dumpsys activity services | grep XXXService两种Service查询有啥区别吗?需要什么命令可以杀死这个Service。本文讲解一些adb查询和控制Service相关的知识;
2024-10-19 11:43:23
1775
原创 Android列表中EditText按回车按键后出现 focus search returned a view that wasn‘t able to take focus!崩溃异常解决
Android系统有个bug:List或者RecyclerView列表中如果存在多个不同类型的Item,其中有Editext,如果在Edittext点击输入法对话框总的完成会出现崩溃。虽然这种情况,比如少见,但是还是记录一下。解决这个问题有几种方法,一个是输入法里面适配,一个是系统代码不抛出异常,还有一个就是应用里面规避这个报错。
2024-09-27 21:58:29
728
原创 Android 热点分享二维码功能简单介绍
比较新的Android相机可以扫描热点二维码连接热点功能。那么这个热点二维码是如何生成的呢?热点二维码生成比较简单,可能有些没做过不了解,这里简单介绍一下,本文比较简单。热点二维码其实就是一段字符串,包含了热点加密类型,热点密码,热点名称等信息。
2024-09-27 21:54:53
1431
原创 Android14 手机蓝牙配对后阻塞问题解决
Android13、14 手机配对蓝牙后会造成阻塞问题。Google 问题。测试了Android13 Google 手机也是有这个问题。具体复现步骤和现象就是:一台Google手机蓝牙配对另外一台手机的蓝牙后,Google 手机重新扫描蓝牙设备就会无法扫描到其他设备,需要等待20多秒超时处理后才能重新看到扫描的蓝牙设备。
2024-09-21 19:27:45
1427
原创 Android14 蓝牙启动流程
基于Android14 分析了一下蓝牙的开启流程,本来以为比较简单的,但是发现具体处理会有点绕。主要是从应用上层到cpp层蓝牙的开启过程代码进行的一定的分析。BluetoothAdapter、BluetoothManagerService、AdapterService 是蓝牙开启最相关的上层代码。这个对蓝牙开启失败、或者蓝牙其他流程有问题有一定的分析研究价值,有助于确定是哪个流程出现了问题。这个介绍比较简单一点,没有到后面 AdapterService 的代码。
2024-09-21 19:26:04
2636
2
原创 Android14 待机关机蓝牙自动关闭分析解决
Android14 设备蓝牙开启的情况,待机关机后再开机出现有概率蓝牙关闭的问题。设备开机后手动打开蓝牙是可以正常打开的。通过分析发现是上层的蓝牙服务中有监听关机广播,有关闭蓝牙动作。但是为啥会出现有概率关闭呢,具体原因是因为有时候蓝牙关闭流程没走完或者有些蓝牙关闭流程未走到设置蓝牙关闭属性的情况。
2024-09-14 19:14:12
2836
原创 Android14 蓝牙 BluetoothService 启动和相关代码介绍
蓝牙开关和使能开发主要用到:BluetoothService、BluetoothManagerService、BluetoothManager、BluetoothAdapter 这几个系统相关类。某个蓝牙的配对、连接、断开 使用的是 BluetoothDevice 对象。蓝牙开关状态不记忆或者打开异常就可以看看BluetoothManagerService的日志,里面有打开关闭相关过程日志和时间点,这个对问题分析有一定的帮助。本文主要介绍一下 framework 相关的几个类,
2024-09-14 19:06:02
3666
原创 Android 源码中jni项目 加载so目录小结
如何实现把so放到Android设备目录system/lib64下面,系统应用apk就能自动获取里面的so?如果实现了这个功能,后续修改了jni具体功能实现,就不用修改这个apk的代码,只要替换这个so就可以完成不同的实现了。其实这个功能不难,只要是系统源码编译的应用就可以;具体如何编译可以看本文最后的介绍。本文主要介绍一下,系统源码应用编译后,load so的顺序:顺序就是优先apk目录下的 lib/arm64/,然后 system/lib64/,有的还会加载 vendor/lib64/
2024-09-06 20:19:29
1342
原创 Android 系统源码项目加载预编好的so库
Android 系统开发中会源代码有加载so库的情况,本文进行简单介绍。Android Studio 项目加载so库,已经有介绍过:Android Studio加载so和使用so还是比较方便的,环境OK的情况,几分钟就可以完成验证测试了。但是如果要在系统源代码Java里面加载和使用so就比较麻烦了,主要通过Android.mk或者Android.bp编译加载so,反正网上的代码写的mk/bp基本都是不行的。本来以为只是介绍一下编译使用的Android.mk或者Android.bp就可以了,
2024-09-06 20:14:18
1966
3
原创 Android wifi主要广播详解
wifi应用开发肯定会用到wifi开关和wifi连接状态监听的广播,有些广播比较容易混淆,本文进行详细总结。比如wifi网络变化广播:CONNECTIVITY_ACTION、WIFI_STATE_CHANGED_ACTION、NETWORK_STATE_CHANGED_ACTION 这三个比较容易搞混。SUPPLICANT_STATE_CHANGED_ACTION 和 SUPPLICANT_CONNECTION_CHANGE_ACTION 比较容易搞混。
2024-08-29 14:41:07
2521
3
原创 Android 获取ip地址多种方式介绍
adb shell 的 ifconfig可以获取当前设备网络节点信息;这些信息使用Android代码也是可以获取的;Android 获取网络ip有多种方式,有时候某种方式获取失败的情况下;那么就可以换一种获取方式,所有多学习一下获取网络ip相关信息是有用的。本文介绍三种获取网络ip信息的方式,并且最后一种的代码不用任何权限就能获取到相关节点的ip和MAC地址,有兴趣的可以看看。
2024-08-29 10:55:12
5932
原创 Android14 以太网共享功能 相关代码简介
Android 的以太网共享功能是啥?其实就是 Android设备接入一个网线后,再接入电脑,电脑就可以分配到到一个ip;这里的Android 设备就相当于一个路由器。如果Android设备可以正常上网,那么电脑也是可以上网的;Android 的以太网共享功能简单的说就是把Android设备的网络通过网线的形式共享给其他设备。Android手机设备基本没有网口,可以通过usb Hab转接网口;一些调试用的Android 设备是保存有网口的,可以直接接入网线。
2024-08-25 19:04:08
2845
1
Android 开发工具箱 apk
2024-11-09
Android13 蓝牙文件接收过程日志,已经修改视频过对话框接收文件的日志
2023-12-05
Android13 修改蓝牙文件接收为对话框接收过程
2023-12-05
adb较新版本1.0.41版本
2023-11-15
Android13 按键介绍和相关源代码
2023-09-22
Android13 wifi adb相关介绍和相关源码
2023-09-06
Android 网络请求代码和demo.apk
2023-08-14
wifi adb demo
2023-07-17
Android busybox 简单介绍
2023-05-27
Android EditText设置密码是否可见
2022-12-08
Android NTP获取时间demo
2022-10-23
简单的Jni Demo 计算器的开发
2022-07-18
Android大图加载示例代码和apk
2022-04-05
Android 壁纸设置和确认demo源码和apk文件
2022-02-27
Android11_frameworks有线网络开关添加相关代码.zip
2021-12-30
CameraDemo.apk
2021-08-05
RecordMedia.zip
2020-03-22
SwipeBackLayout.rar
2020-02-13
apk文件进行解析,跟大家分享一下
2019-08-04
对未签名apk文件进行签名.zip
2019-08-04
AudioRecordDemo
2019-03-24
okHttpDemo
2018-07-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人