自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(132)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android 因为混淆文件配置,打release包提示running R8问题处理

处理思路:根据报错提示,采用-dontwarn 去除警告,后面就可以打包成功了。

2024-12-09 19:40:38 224

原创 Android AIDL中,in、out、inout修饰符的作用

由于inout参数允许客户端和服务端双向修改,这会增加系统的开销。因此,在设计AIDL接口时,应根据实际需求合理选择使用in、out或inout修饰符,以优化性能和资源利用。3‌、inout‌:表示数据可以在服务端与客户端之间双向流通。客户端可以传递参数给服务端,服务端也可以修改这些参数并返回给客户端。‌2、out‌:表示数据只能由服务端流向客户端。服务端可以将数据传递给客户端,但客户端不能修改这些参数。‌1、in‌:表示数据只能由客户端流向服务端。客户端传递参数给服务端,但服务端不能修改这些参数。

2024-12-07 11:35:48 188

原创 kotlin 枚举赋值写法

【代码】kotlin 枚举赋值写法。

2024-12-03 09:49:46 68

原创 Android 文件分段上传和下载方案

Android 中的大文件下载需要使用分段下载,下载通常是在线程中进行的,假如有5段,那同时5个线程去执行下载,请求http返回文件流后,需要将多个文件流同时写进同一个文件,这里用到。分段上传的话,只需要根据每段文件阀值,例如,50M为一段,将文件按照设置的阀值,分段上传即可。忽略网络请求和状态码,每个人接口定义的的请求参数和返回code不一样。

2024-11-21 10:13:35 321

原创 Android 使用Retrofit 以纯二进制文件流上传文件

1. 上传文件API 端点:/service/upload● 方法:PUT● 请求参数:○ filename:文件名(必选)○ 请求头:○ Authorization:用于身份验证的 token(必选)○ X-Request-ID:请求的唯一标识符(必选)○ Upload-Offset:当前上传块的偏移量(必选)■ 单位:byte○ Upload-Type:文件上传方式(必选)■ 1 上传到相册(/storage/emulated/0/Pictures/)

2024-11-18 20:37:11 341

原创 Android WebSocket ping pong机制

博主项目中用的是第二种,Android 项目中作为客户端,服务端会发送ping,要求收到ping后发送pong给服务端。其实框架内部是自动处理了的。如果收到ping后需要自定义发送发送pong消息回应怎么办?1、使用的库版本:org.java-websocket:Java-WebSocket:1.5.2。2、WebSocket 中,有时候需要保持连接,会采用发送心跳或者发送ping回应pong。onWebsocketPing函数即可,里面编辑发送自己想要发送的消息。

2024-11-09 14:20:10 478

原创 Android AGP升级到8.x导致的混淆问题(Class cannot be cast to java.lang.reflect.ParameterizedType)

最近在gradle8.0(gradle-8.0-bin.zip) 的项目中,添加混淆,网络框架使用的是retrofit,当发送http请求时,接口包400,提示:类型转换异常(Class cannot be cast to java.lang.reflect.ParameterizedType),刚开始还以为是解析定义的泛型和注解被混淆导致,配置了后还是一样报错,最后发现是gradle8.x引发Retrofit的混淆问题导致的。在混淆规则proguard-rules.pro里面添加下面语句,问题得到处理。

2024-11-08 14:00:11 173

原创 Android 开启混淆R8编译问题处理

Android R8是一个代码混淆和压缩工具,可以将应用程序的大小和安全性优化。它引入了一些新功能,如成员内省、混淆指针、类内省等。但R8使用起来一直不友好,因为自从使用R8之后编译问题不断。把上面这些提示信息加入到模块的proguard-rules.pro混淆配置文件中即可解决。

2024-11-08 10:46:52 541

原创 Android 延时操作的常用方法

在Android开发中我们可能会有延时执行某个操作的需求,例如我们启动应用的时候,一开始呈现的是引导页面,3秒后进入主界面,这就是一个延时操作。还有一种是执行某些接口任务时,需要有超时机制。下面介绍常用的几种方法。@Override// 休眠1秒/*** 延时执行的代码*/}).start();

2024-11-06 17:55:13 447

原创 Android Studio插件版本与Gradle 版本对应关系

Android Studio 构建系统以 Gradle 为基础,并且 Android Gradle 插件添加了几项专用于构建 Android 应用的功能。虽然 Android 插件通常会与 Android Studio 的更新步调保持一致,但插件(以及 Gradle 系统的其余部分)可独立于 Android Studio 运行并单独更新。Android Studio 构建系统以 Gradle 为基础,并且 Android Gradle 插件添加了几项专用于构建 Android 应用的功能。

2024-10-29 17:21:31 1430

原创 Android 常用官网网站连接汇总

3、Android Studio国内官方地址 https://developer.android.google.cn/studio/2、Kotlin插件最新版本: https://github.com/JetBrains/kotlin/releases。1、Gradle插件最新版本: https://developer.android.com/studio。

2024-10-29 16:56:50 149

原创 Android AAR嵌套AAR打包出现问题解决方案

打包一般会打包成 aar 的形式。例如 App 引用了两个 aar(1.aar 和 2.aar),1.aar 和 2.aar 都依赖了第三方的 3.aar,如果1.aar 和 2.aar 都把 3.aar 打包进去的话,App 再引用 1.aar 和 2.aar 的时候就会因为都有 3.aar 发生引用冲突。这里注意,有时候将第三方库打包进aar时,第三方库中又用了其他库,没打进去的话,使用aar时会闪退,这里就要根据报错,找到缺少的日志库和版本,将缺少的库在moudle中使用embed打包进aar库。

2024-10-26 19:18:53 1354

原创 Android EditText调起键盘,阻止Recyclerview调整大小方法

但当调用弹窗,点击弹窗中的EditText时,会触发弹出键盘,导致触发了RecycleView底部的item不可见,这种情景其实应该是算可见的 ,不然业务流程会有会问题,因此,尝试修改不触发。通过设置RecycleView的addOnChildAttachStateChangeListener,判断网格布局可见和不可见,1、在Android中,可以通过设置RecyclerView的属性来实现阻止调整大小的效果。,可以将RecyclerView作为一个可滚动的容器,从而避免键盘弹出时调整大小。

2024-10-22 16:43:35 352

原创 kotlin data class 内部类字段首字母大写被转为小写问题处理

【代码】kotlin data class 内部类字段首字母大写被转为小写问题处理。

2024-09-27 14:13:52 196

原创 Android Studio 真机USB调试运行频繁掉线问题

检查Android SDK-Platforms需不需要更新(status变为update Available…Android Studio使用手机运行项目时,总是频繁掉线,连接很不稳定,动不动就消失,基本上无法使用。换条数据线试试,如果可以,那就是数据线的问题。

2024-09-23 14:15:52 620

原创 使用 Gradle 引入 AAR 库的两种方式

AAR 文件是 Android 的一个归档格式,类似于 JAR 文件,但它除了包含编译后的代码外,还包含资源文件、AndroidManifest.xml 文件等。这使得 AAR 文件可以更完整地封装一个 Android 库。

2024-09-20 20:22:31 855

原创 Android Studio 三方库和gradle 版本下载缓存目录

这里说的是window下的保存位置:三方库的位置gradle的位置。

2024-09-10 20:04:25 366

原创 Android kotlin使用Netty网络框架实践(客户端、服务端)

kotlin通讯协议:头+类型+长度+数据+尾,自定义编解码器,解析和包装发送数据流,以下贴出部分关键代码代码中封装了client和server端,可以点击按钮进行通讯,可以直接在项目中使用,尤其是处理了粘包和分包问题。

2024-09-02 17:31:28 1303

原创 Android 常用三种日志框架[Logger、Timber、XLog]

这里主要说下XLog的用法,也是博主目前在项目中采用的日志框架,其他两种如果需要,自行研究,这里简单介绍。1、LoggerLogger是一个比较早期的日志框架,积累到现在的人气超高,拥有将近 14K 的 Star。这个库非常轻量,满打满算整个库只有 13 个类日志输出格式还是挺好看的,可以直接输出 Collection、json、xml 类型数据,但是不能自定义输出格式。日志可以保存到磁盘,但不能配置文件相关策略(文件名、备份、删除等),可以理解为,有存储文件功能,但不多。

2024-09-02 16:10:44 1845

原创 kotlin 两种单实例写法

在Kotlin中,没有静态变量和静态方法,但是可以通过Kotlin中的 伴生对象 来实现。

2024-08-31 18:03:00 240

原创 AndroidStudio运行后新写的代码未生效处理方法

1、修改1:亲测有效。

2024-08-29 10:58:40 555

原创 Android 12中读写SD卡,提示Operation not permitted问题处理

安卓11开始,强化了对SD卡读写的管理,引入了MANAGE_EXTERNAL_STORAGE权限,而之前的WRITE_EXTERNAL_STORAGE已经失效了。并且MANAGE_EXTERNAL_STORAGE权限只能跳转设置页面申请。

2024-08-23 15:45:33 930

原创 adb 获取手机电池信息与修改恢复

1、dumpsys battery set wireless 电池是否无线供电 0-false 1-true。3、dumpsys battery set status 电池状态:2:正充电;7、dumpsys battery set usb 电池是否USB供电 0-false 1-true。6、dumpsys battery set ac 电池是否电源充电 0-无线充电 1-交流充电。4、dumpsys battery set temp 电池温度。这将返回当前设备有关电池的所有信息。

2024-08-22 16:56:55 1123

原创 ConnectivityManager里面的连接类型

int TYPE_MOBILE_DUN ://网络桥接,很老的一个网络 提供了通过 Bluetooth 无线技术接入 Internet 和其它拨号服务的标准。int TYPE_MOBILE_HIPRI ://高优先级的移动数据连接。int TYPE_WIFI ://wifi服务,当激活时,默认情况下,所有的数据流量将使用此连接。int TYPE_MOBILE_SUPL ://平面定位特定移动数据连接。int TYPE_MOBILE_MMS ://运营商的多媒体消息服务。

2024-08-22 16:40:19 219

原创 Android-System 去除低电量Dialog

【代码】Android-System 去除低电量Dialog。

2024-08-20 11:38:58 187

原创 Android-System 修改adb 默认端口

stop adbdstart adbd。

2024-08-20 11:28:00 586

原创 Android- Framework 非Root权限实现修改hosts

Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”

2024-07-01 17:14:51 2053

原创 shell 脚本中集成logcat 日志打印

【代码】shell 脚本中集成logcat 日志打印。

2024-06-28 14:34:23 272

原创 Android 系统编译服务器配置信息查看和示例

查看所有cpu信息:lscpu。查看内存信息:free -h。

2024-05-29 16:58:07 341 1

原创 Android app和aar包混淆

注意:特别是aar包提供给第三方的时候,切记提供给人家的时候混淆要把人家要调用到的类跟方法排除掉,不然别人便调用不到你这个类跟方法,因为被混淆改了名字。而且,一般引入第三方库的时候,就该把混淆规则加上,不要等到最后才加。先把 minifyEnabled 设为true,然后编写proguard-rules.pro文件。仅作参考,需要根据自己引入的三方库等配置混淆。

2024-05-28 11:35:35 456

原创 Android Sensor 介绍

(3)陀螺仪传感器:测量设备自身的旋转运动。原理:角动量守恒,中间有一个陀螺,周围三个轴的定位组件,根据旋转过程给出三个角速度。(2)磁力计传感器:定位设备的方位。温度传感器,距离传感器,重力传感器,线性加速度,翻转传感器,性对湿度传感器等。加速度传感器,磁感应传感器,方向传感器,陀螺仪,光线传感器,压力传感器,原理:使加速度传感器内部发生变形,输出三个与之相对应的电压信号。(1)加速度传感器:测试设备重力情况,相对于外部参照物;(3)压力传感器:测试手机距离地面的距离;应用:指南针,定位设备的方位等。

2024-05-23 19:10:24 178

原创 Android Low Storage机制之DeviceStorageMonitorService

设备存储监视器服务是一个模块,主要用来:1.监视设备存储(“/ data”)。2.每60秒扫描一次免费存储空间(谷歌默认值)3.当设备的存储空间不足时生成“低存储”通知。4.引导用户管理设备中安装的所有应用程序,并发送意图。5.存储严重不足时显示警告对话框。6.为AMS/PMS提供公共API以查询存储状态DeviceStorageMonitorService初始化handler用于check。

2024-05-20 16:23:16 563

原创 Android Settings系统属性读写

写为settings put secure 系统属性key 系统属性值。源码地址:frameworks/base/core/java/android/provider/Settings.java。对应xml路径:/data/system/users/0/settings_global.xml。对应xml路径:/data/system/users/0/settings_system.xml。对应xml路径:/data/system/users/0/settings_secure.xml。

2024-05-20 11:41:12 994

原创 Android 获取已安装应用、包名、应用名、版本号、版本名

【代码】Android 获取已安装应用、包名、应用名、版本号、版本名。

2024-05-14 17:35:43 1007

原创 Android 根据apk路径跳转到系统安装页面

【代码】Android 根据apk路径跳转到系统安装页面。

2024-05-14 13:43:23 244

原创 Android 13 有线以太网静态ip保存逻辑梳理分析

这个类主要就是用来配置静态IP的,这个类之前也是在frameworks/base/core/java/android/net/路径下,12里面也移到了packages/modules/Connectivity/framework/src/android/net/下。,所以如果之前只在11上面适配过,那么对于12来说,适配还是需要花费一点功夫,具体的差异在之后的部分会记录,但是12与13的有线网络差异就较小了,并且看起来,13的以太网接口以及逻辑比12来说更为完善。源码环境:高通Android 13。

2024-04-17 16:16:11 1930 3

原创 Android 手机出现 FASTBOOT模式问题分析

FASTBOOT是一种基于 Android系统的开发工具,可以用于刷机、恢复等操作。在手机上,FASTBOOT模式通常是由于系统出现问题或者需要进行刷机操作时出现的。二、手机出现 FASTBOOT的原因1. 系统出现问题:手机的系统可能会出现各种错误或崩溃,导致无法正常启动。此时,手机会自动进入 FASTBOOT模式,以尝试修复或恢复系统。2. 刷机操作失误:如果你手动刷机或者使用第三方工具进行刷机,出现操作失误或者刷入不兼容的ROM,也会导致手机出现FASTBOOT模式。

2024-04-11 11:23:34 1504

原创 Android 系统大致启动流程

启动swapper进程(pid=0),该进程又称为idle进程,,系统初始化过程Kernel由无到有开创的第一个进程,,用于初始化进程管理、内存管理,加载Display、Camera Driver、Binder Driver等相关工作(图中kernel层蓝色区块)。kthreadd进程是所有内核进程的父进程。init进程孵化出Zygote进程,Zygote进程是Android系统的第一个Java进程,Zygote是所有Java进程的父进程,Zygote进程本身是由init进程孵化而来的。

2024-04-01 18:58:03 871 1

原创 Android Studio 因JDK版本导致编译报错问题处理

将Gradle JDK版本改为11。

2024-03-26 15:26:49 1101 1

原创 Android-System SELinux 权限

标志性 log: avc: denied { 操作权限 } for pid=7201 comm=“进程名” scontext=u:r:源类型:s0 tcontext=u:r:目标类型:s0 tclass=访问类型 permissive=0。在Android系统开发中, 可能会遇到SELinux的权限不足而引起的各种问题. 可以尝试将SELinux工作模式临时改为宽容模式看问题是否解决, 来判定是否是SELinux引起的问题。目标类型:客体的类型,它被授权可以访问的类型。访问类型:客体的类可。

2024-03-25 13:52:21 420

Android Studio 3.6.1版本

Android Studio 3.6.1版本,对应gradle版本gradle-5.6.4-all.zip

2024-10-29

Android kotlin使用Netty网络框架实践(客户端、服务端)

开发工具:Android studio  语言:kotlin 设计原理:通讯协议:头+类型+长度+数据+尾,自定义编解码器,解析和包装发送数据流 说明:使用Android Netty tcp通讯框架,代码中封装了client和server端,可以点击按钮进行通讯,可以直接在项目中使用,尤其是处理了粘包和分包问题。

2024-09-02

修改hosts patch

path使用方法: 1、将0001-function-change-host.patch拷贝到qssi/目录下(目录不一样,patch就执行2无法直接应用patch) 2、执行patch -p1 <0001-function-change-host.patch

2024-07-01

反编译工具之dex2jar

将apk中的classes.dex文件转换成jar,一般配合 jd-gui一起使用

2024-06-28

自动填满磁盘空间apk

使用该应用,可以自动将磁盘空间填满,用于测试磁盘空间满情况

2024-05-20

反编译工具jadx-gui

jadxjadx是一款window端反编译器,同时支持命令行和图形界面,能以最简便的方式完成apk的反编译操作-gui

2024-01-22

系统中oaid适配应用源码和相关资料

系统中oaid适配应用源码和相关资料

2023-09-12

已下载好的ctags安装包

已下载好的ctags安装包

2023-08-26

golang-linux-arm64-sdk

golang-linux-arm64 SDK

2023-05-25

golang 安卓 环境sdk

go官网只有Linux、Windows、macOS的SDK,并没有现成的在安卓环境中的go SDK,需要自己去编译生成,此sdk已经经过配置编译,可以直接在安卓中配置使用。

2023-04-18

NDK或C++开发根据内存地址定位报错代码方法和步骤

C++中,程序崩溃,不会直接报具体哪一行代码导致报错,需要根据backtrace:中的内存地址, 去定位代码报错位置。掌握了方法,就可以快速的定位到代码中报错地方,定位的步骤和方法,已在资源中详细描述。不同ABI架构的定位报错方法有差异,但步骤都差不多,不同架构的,根据不同的工具去定位即可,资源文档中,详细描述和举例了定位报错代码的方法,按照步骤去操作即可。

2022-06-17

空空如也

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

TA关注的人

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