- 博客(496)
- 资源 (103)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Android13 串口控制是能wifi adb实现
Android 系统开发初期调试,一般有串口功能调试,但是可能没有adb功能。adb功能比串口调试方便一些,比如可以直接传输文件,定向打印日志到电脑,投屏,安装电脑中的apk等功能。目前网上是没有详细分析的文章的。
2024-06-28 16:41:03
1117
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Android 使用adb操作WiFi连接扫描等相关指令
Android系统调试是,如果没有系统原生设置应用又需要调试验证WiFi功能时,可以使用一些指令来验证调试WiFi相关功能,最常用的就是 svc wifi enable/disable,或者使用iv dev来验证,但对于AP功能就没办法验证了,并且可调试功能比较少,其实Android系统自带有组很强大的shell指令集,这里记录下平时使用的cmd wifi 相关指令。系统初期开发或者定位一下wifi、热点问题会比较有用。
2024-06-28 15:11:56
1740
原创 Android EDLA项目 5G热点打开失败分析
Android 13 外销国外的产品都要过EDLA认证了!EDLA认证的项目基本都是默认集成GMS Google mainline 和开启KPI;所以系统会自带了谷歌的很多apk和apex等数据,会造成系统某些代码修改没有作用。//Java 代码--Connectivity//Java 代码-- Wifi虽然部分模块的代码无法修改,但是还是要进行分析验证,谷歌集成的代码和原生代码是差不多的,主要差别就是res的默认属性可能有差别,所以系统代码逻辑还有要看的,这样才能更准确的定位问题。
2024-07-18 19:55:50
1060
原创 Android13 应用代码中修改热点默认密码
Android 有些情况会有修改热点信息的需求,比如修改热点默认名称、默认密码登信息。但是Android13 或者更新的代码,外销国外的设备都要通过EDLA验证了,集成谷歌那套代码,无法修改 packages\modules\Wifi 的代码,所以无法修改热点的默认信息?其实办法肯定还是有的,只要在系统第一次启动时通过WifiMannager接口获取wifi信息,再修改一次热点的信息即可。如果有需求都可以看看下面的实现代码。修改热点其他默认信息也可以同样参考。
2024-07-18 19:41:48
1098
原创 Android Settings应用 PreferenceScreen 条目隐藏实现和简单分析
Android 原生设置Settings应用很多界面都是使用xml的 PreferenceScreen 形式进行显示,PreferenceScreen 里面包含很多条目,如果要隐藏某个条目就要修改xml或者Java代码,有些情况修改xml是无效的,修改Java代码才有作用。本文简单记录一下Settings PreferenceScreen 某个条目隐藏实现。网上百度到的像View那样隐藏item的代码肯定是不对的。上面 Preference 代码的显示和隐藏使用的是View的那套。
2024-07-11 19:39:06
742
原创 wifi代理、静态ip设置无效解决
Android 系统中如果是自己开发的应用,需要连接网络设置静态ip或者代理信息,可能会出现设置的代理信息后无效的情况,自己应用配置的代理信息,在原生Settings也能同步显示,但是浏览器并没有更新代理设置的信息,比如设置代理后不弹框提示代理登录,需要关开一次wifi才生效,或者关闭代理后依然弹框提示代理登录,需要关开一次wifi才生效,具体原因是网络信息没有被重新加载。这里简单记录一下。
2024-07-11 19:28:44
340
原创 2024 端午节巽寮湾游玩记录
时间总是过得很快,只要你活着时间就会不停往前走。所以你以后的路其实都是在今天脚下走过来的。2024年端午节是6月10号距离今天19号已经九天了,一直想简单记录一下游玩生活点滴,方便给别人提供一下简单参考,也给自己留多一点念想,但是很多时间不是被手机偷走了,就是被上班、睡觉或者各种杂事耽搁着,难得有时间进行复盘和总结,端午节是从深圳去的惠州巽寮湾游玩三天,过去路程两个多小时。巽(xun,读音同训,不是序)寮(liao)湾游玩记录,有兴趣的可以看看。
2024-06-19 03:40:17
858
原创 2024年 五一中国第一滩游记
2024年端午节是5月1号距离今天19号差不多两个月了,一直想简单记录一下游玩生活点滴,方便给别人提供一下简单参考,也给自己留多一点念想,难得有时间进行复盘和总结,五一回到家本来想去周边城市玩三四天的,但是事与愿违,基本每天都有雨,还是暴雨;但是还是抵不住出去玩的决心,第二天早上10点多暴雨停了后,马上开车去茂名;去看看“中国第一滩”,网上也看了,大部分评论都是一般般,甚至差评,但是好奇心还是战胜了所有,有钱有车有时间怕啥。
2024-06-19 03:30:46
992
原创 Android 蓝牙配对Settings应用里面的简要流程记录
本文只是简单分析一下原生设置Settings中蓝牙配对的大致流程,具体细节有需要的自行研究。另外我这里的开发平台是AML平台的,所以会有Settings和TvSettings,其实这两个应用都会监听到蓝牙配请求,都会进行处理,这也是为啥会出现两次蓝牙配对弹框确认的情况。//监听蓝牙配对广播//;蓝牙配对广播@Override//设置蓝牙配对//关闭广播传递,防止原生设置监听到配对这里是监听到蓝牙配对后,后台直接确认配对,不用点击系统Settings的配对对话框就会确认配对。
2024-06-15 17:46:00
891
原创 Android13 蓝牙协议属性配置详解
Android系统中蓝牙协议是否使能一般是通过一个属性值,如果这个属性值设置为false,会导致这个协议的服务未启动,也就是说这个蓝牙功能会没有作用。比如 Android 蓝牙传输文件协议是opp,如果opp未使能,那么整个系统是不支持蓝牙文件传输的。在Android13之前的版本,我们可以通过 config.xml 中的 profile_supported_a2dp 属性控制蓝牙的某个协议是否使能。这些属性是res属性,只能在资源文件中修改,还不方便查询。
2024-06-15 15:22:36
1469
原创 Android 几个简单的自定义对话框介绍
Android 对话框直接使用肯定是不好看的,如果需要添加取消和确定按钮,肯定是需要进行自定义修改的。本文简单介绍一个简单的可扩展的对话框,并且支持不同类型样式,加了点小动画。有需要的可以看看。//(1)默认字符串显示,显示一个确认按钮,只是用来测试//(2)修改标题和文本内容,显示一个确认按钮")").show();//(3)修改标题和文本内容和类型图标,显示一个确认按钮").show();大部分场景上面三个代码比较常用。
2024-05-19 12:29:06
1333
原创 Android 系统设置拉起后台非全屏应用不隐藏前台应用
Android 原生流程中,如果切换后台应用界面,会先执行返回Home界面,再切换到新的应用界面;验证方法:手机打开一个应用1界面,底部往上滑,切换一个之前的后台应用2到前台,左右滑动退出应用2,发现回到的是Home界面而不是应用1界面。原生在startActivityFromRecent时,先回到Home了。但是Android 大屏设备,一般是需要显示多个应用,界面部分应用都是悬浮Activity,理想效果是:不返回Home界面,直接拉起后台应用。下面是实现的代码,其实就是在关键方法返回就行。
2024-05-19 12:25:30
374
原创 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
3330
8
原创 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
1586
2
原创 Android13 Studio新建的代码编译报错INSTALL_PARSE_FAILED_MANIFEST_MALFORMED解决
这个错误信息表明安装失败,原因是Android应用的Manifest文件存在格式错误。Manifest文件是每个Android应用必不可少的一部分,它包含了应用的名称、版本、权限等重要信息。如果Manifest文件中的某些信息不符合规定或者有语法错误,系统将无法解析这个文件,导致应用无法安装。新建的项目为啥会报错呢?其实是Android13开始,四大组件都是要设置 exported 属性,否则会报错。其实就是缺少了必要的信息。给组件添加 android:exported 属性即可。
2024-04-20 20:26:36
1025
原创 Android Studio 新建Android13 代码提示Build Tools revision XX is corrupted无法编译解决
Android Studio 新建Android13或者app下的build.gradle文件配置 compileSdkVersion 33上面提示看似简单,提示重新卸载 再下载Build Tools33.0.0就行了,但实际上重新下载也不行!其实就是SDK新版本编译环境问题,不用重新下代码,从低版本复制两个文件过去或者修改两个文件的命名就行。具体原因是SDK对应版本build-tools里面缺少了dx.bat和dx.jar,解决方法从低版本复制一个过来,
2024-04-20 20:20:37
664
原创 Android Studio项目加载预编好的so库
Android 项目中需要调用别人的so的实现,那么我们的应用需要如何操作呢?本文主要介绍Android Studio中如何调用现有的so库代码。Android JNI生成的so库有很多不同架构类型,比如:armeabi、armeabi-v7a、arm64-v8a、x86;
2024-03-27 16:00:00
1599
1
原创 Android JNI SO库和对应的CPU架构详解
Android JNI生成的so库有很多不同架构类型,比如:armeabi、armeabi-v7a、arm64-v8a、x86;Android 系统不同的cpu架构就要使用不同类型的so库,如果不考虑内存大小,放全套也是没有问题的;但是实际使用中,很多时候只会放一套或者两套就可以了。本文介绍Android cpu不同架构的so库区别,以及如何查看当前系统是什么cpu架构,以便在实际场景中做出最优选择。
2024-03-27 08:42:59
1373
原创 Android Preference简单介绍
想刀一个人的心是藏不住的,我要吐槽一下Google工程师;写代码就写代码,Settings代码非要写Preference那套布局.没怎么学过Preference相关知识,之前很多次想修改获取一直Settings里面的某个功能或者布局就看得蛋疼。PreferenceScreen、PreferenceCategory、SwitchPreference这个东西,看Settings里面的代码是一脸懵逼。如果你把Preference相关的类和布局当成普通类,想要修改一两个文件的布局界面和具体事件,
2024-03-21 11:06:16
1806
1
原创 Android adb命令发送广播介绍
Android 广播除了代码中发送,还可以使用命令模拟发送,只要应用代码中进行了监听,都可以正常接收到的。掌握手动发送广播命令,可以方便某些代码的调试。所以学习一下Android adb方式 发送广播命令是有用的。其中, `` 是广播的动作,可以是Android系统定义的动作,也可以是自定义的动作;-d是数据的URI;-t是数据的MIME类型;-c是广播的类别;-n是广播的组件;-f是标志位;–es|ei|ef` 是额外的键值对参数。
2024-03-21 08:49:50
4125
1
原创 Android JNI常用API函数介绍
(1)JNIEnv 结构体相关函数(2)JavaVM 结构体相关函数(3)jclass 相关函数(4)jobject 相关函数(5)字段相关函数(6)数组相关函数(7)字符串函数其实主要的JNI API 函数就上面这些相关的内容;大部分会用,那么JNI 的API 就没啥难度了。其他的API函数可以看jni.h文件,但是这个文件是没有注释的,根据字面意义理解就差不多了。除了JNIEnv和JavaVM使用的获取使用比较少,其他API使用的还是比较多的;
2024-03-14 17:01:51
1181
1
原创 Android JNI静态注册和动态注册方法详解
这里的JNI静态方式注册方法和JNI的static方法是没有关系的。本文主要介绍jni.cpp代码中动态注册方法的讲解。很多人对这块知识还是比较陌生的,什么是静态注册?什么是动态注册?有些人可能都不清楚。JNI静态注册和动态注册是哪里的代码?什么时候使用静态注册?什么时候使用动态注册?为什么呢?其实一般情况用不到动态注册,但是复杂JNI项目或者系统源码中可能会用到动态注册。特别是系统源码中基本都是用的动态注册的形式,注册JNI方法,所以是有必要进行学习的。
2024-03-14 10:13:20
1208
原创 Android JNI 普通方法和静态方法详解
Android Jni中Java的静态方法和普通方法有什么区别?很多人可能都不清楚,如果想知道的可以了解一下。这个问题很少人会关注,一个是因为很少会静态方法调用JNI或者回调静态的Java方法;另外一个是因为知道了或者调试过就不难了,所以很多人觉得没必要讲解和记录。但是对于JNI 的初学者来说静态方法还是比较陌生的,很容易会懵逼的,不知道有啥区别。本文主要讲解一下上面两种静态方法在JNI中的区别,有兴趣的可以看看。
2024-03-06 16:59:22
1380
原创 Android JNI 复杂数据demo ,字符串、数组对象等数据操作讲解
Android JNI复杂数据的传输,比如数组,字符串等数据传给底层处理,对于JNI使用不多的开发者,可能开发会比较吃力。本文主要介绍JNI复制数据的传递和打印,不是很复杂的JNI Demo代码,但是对于复杂数据的处理的使用是很有帮助的。
2024-03-06 16:53:36
1234
原创 Android JNI复杂用法,回调,C++中调用Java方法
/创建对象的本地变量//获取类对象I)V");上面(1)和(2)是没什么研究价值的,NewGlobalRef和FindClass都是固定的写法。(3)和(4)的不用方法的调用区别就比较大了,使用不同的api函数还可以修改Java的变量属性。静态方法和动态方法调用的api函数也不一样,有返回值的方法和没有返回值的方法调用的api函数也是不一样的。并且Java方法或者变量即使是private修饰的也不影响cpp调用过去,因为反射是不受修饰符影响的。
2024-03-02 17:39:58
1886
原创 Android Jni添加打印(C++打印)
Android Jni中添加日志打印其实就是C/C++日志打印Android环境的C/C++代码打印,可以添加相关头文件后,调用打印方法跟Android打印类似,也是有打印级别,I,D,W,E#include //添加头文件#define LOG_TAG "TstCPlus" //定义TAG其他级别打印也是同理使用。上面的方法把定义都写在打印的定义都写在一个类里面了,如果多个类使用打印就不方便了,
2024-03-02 17:34:07
1671
原创 Android Jni的介绍和简单Demo实现
JNI 全程:JNI(Java Native Interface),通俗翻译:Java本地方法官方说法:提供一种Java字节码调用C/C++的解决方案,JNI描述的是一种技术。所以这里的Nativie的本地的意思就是C/C++,所以JNI通俗理解就是Java调用C/C++的方案技术。//定义变量和方法private:int number;public://定义方法。
2024-02-26 09:19:47
1833
原创 Android13 设置固定热点ip地址192.168.43.1
Android 热点ip一般的系统都是随机生成的,地址一般是:192.168.XX.XX如果要设置成一个固定的ip地址,就需要适配系统代码。相关的适配代码主要都在 IpServer.java 里面。为啥要设置固定热点ip?一般是投屏软件需求,或者其他一些开机或者打开热点后被自动连接场景的需求。
2024-02-26 09:05:46
6084
2
原创 成为CSDN博客优质创作者或者博客专家吧
最近申请成为了CSDN博客专家,有想法的可以加入。写了CSDN技术博客也有七八年了,刚开始只是想记录一下学习的内容,防止以后忘记这些学习到的知识,毕竟人的大脑是功能有限,学习后不一定能记忆很久,所以写下来二次回忆能快速入手,尽管有时候工作很忙,有时候一两个月都没写博客,但是后续经过一些思想转变,发现创造文章不仅对自己有好处,也能给别人提供一些帮助,所以觉得还是很有必要继续坚持创作下去的。既然写了为何不把它写得更好呢,成为博客专家那不是更好吗,
2024-02-08 12:48:09
1167
原创 2023年总结加2024年展望
转眼间到了2024年2月8号,离2024阴历新年只有两天了。不得不说光阴似箭,日月如梭,仿佛2023年一瞬间就过去了,一时间想不起来过去发生了什么事情。所以还是要静下心来想想一年都发生了什么,下一年要如何进步,这个也是写这篇文章的美好初衷。也希望我写的内容对大家会有些点帮助或者感想。2023年对于新冠疫情来说就是一句话:再困难的时光总会过去的。其实这句话对于我们很多都是有相当大的激励作用的,没错,困难的时光总会过去的,这个也是我们时常会在经历磨难后会在心里说的话。
2024-02-08 12:26:16
542
原创 Android 应用添加系统签名权限的几种方式实现介绍
Android 应用添加系统签名就能获取到系统权限调用一些系统接口,添加系统签名的方式主要包括:在Android Studio中配置签名文件生成apk 和 在源码目录编译添加系统签名生成apk。本文介绍的都是一些基础的签名知识,后续延伸介绍相关权限内容。有兴趣的可以进行了解。源码中生成 jks 签名文件:android {。。。//证书信息在这里配置main {storeFile file("./platform.jks") //签名文件路径,根目录release {
2024-02-04 12:51:01
2966
原创 Android13 系统源码适配安装可卸载的三方apk应用
本文主要介绍 手机的三方应用比如游戏,微博等应用,在源码中如何默认配置到手机中的。Android手机中的系统应用是无法手动卸载的,但是这些三方应用安装后是可以手动卸载的。源码编译中配置系统应用是比较简单的,只要在apk文件并且再Android.mk或者Android.bp中进行配置即可。但是如果要默认配置三方应用确实有点麻烦,网上很多文章讲得都比乱,大部分只是贴了相关代码,基本没有介绍完整流程和分享解决配置过程还有一些编译报错。
2024-02-04 12:42:35
1772
原创 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
2544
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
2657
原创 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
5662
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
2701
原创 Android 打开热点2.4G系统重启解决
Android 设备开机后第一次打开热点2.4G系统重启?以5G形式打开热点没有问题!这个问题咋回事呢?和底层驱动的人一起分析了一下,本文进行分享一下分析和解决过程。这种问题一般应用开发不会遇到,只有一些系统开发,或者系统新方案调试可能会遇到。查看了AndroidRuntime 和crash 日志,重启前没啥异常日志。这种情况一般是底层/驱动未完全适配导致。
2024-01-06 14:32:12
1553
2
原创 Android 某个应用缺少特殊权限导致系统一直重启解决
系统一些应用会使用到特殊权限,这时候要在系统配置一下否则系统会一直重启。出现该问题的时候,系统一直显示开机Log界面,无法正常进入Android系统界面。下面一起分析总结一下吧。本文不仅正文有学习价值,后续的延伸介绍内容也是有学习价值的。framework 定义的所有 权限都是有定义包含 protectionLevel 等级的,主要等级有:普通,运行时,权限,特殊。
2024-01-06 14:23:05
1766
原创 Android13 热点默认5G频道配置修改
Android开发中经常要设置默认热点,名称,热点密码,是否是5G频段。之前也有对默认名称和密码进行分析的文章,但是热点频道没怎么看,热点频段对传输性能还是比较重要的,有的平台默认就要5G,查看代码发现默认是2.4G热点。本文对 Android 默认热点5G频段配置 进行分析。wifi信息保存位置:热点信息保存位置:热点的信息文件包含了:热点名称,热点密码,热点频段和信道值等基本信息;wifi 的信息文件包含了:连接过的wifi名称,密码,MAC地址等信息。
2024-01-02 20:55:28
3568
1
原创 Android ZXing二维码包含中文时乱码解决
ZXing就不过多介绍了,就是可以可以扫描二维码获取里面字符串和把字符串生成二维码的小框架。本文记录一下源码编译中,ZXing 在源码编译后,包含中文字符串的二维码出现问号乱码解决。Android Studio中运行该app是没有这个问题的,那么有可能就是编译环境不同导致的。
2024-01-02 20:51:09
1312
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
各种Toast的设计Demo
2018-07-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人