自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用Android 原生LocationManager获取经纬度

可以看成是正常的GPS位置,在google earth上全部坐标,谷歌地图上除中国以外的坐标均为这个标准,但是谷歌地图的中国坐标使用的是GCJ-02标准,博主这里就遇到同一个地方,小米可以通过gps获取到数据,但一加的两个手机,都无法通过gps获取到经纬度,故只能先从网络获取经纬度。GPS获得的经纬度所用的坐标系和谷歌地图、百度地图上的坐标系是不同的,GPS硬件获得的经纬度是WGS-84标准,国际通用,这些都是硬件获取经纬度在地图上指示不对的原因,网上有免费做转换的网站,一些厂商可能会阉割掉谷歌服务。

2025-04-02 17:28:42 339

原创 Android 计算已安装应用的大小

【代码】Android 计算已安装应用的大小。

2025-03-27 13:57:30 192

原创 Android 根据Url使用Retrofit框架进行文件下载

Streaming@GET= null.callTimeout(0, TimeUnit.SECONDS)//0 代表不考虑请求的超时 这里的超时是指整个请求过程的超时,如果设置太短,任务还没执行完,会以超时结束任务,这里尤其要注意.retryOnConnectionFailure(false)// 重连.followRedirects(false)// 重定向.build().build()!= nullget() {// 懒汉模式。

2025-03-22 16:58:24 417

原创 Android retrofit 接口请求,提示CLEARTEXT communication处理

原理:在Android应用中使用Retrofit框架进行网络请求时,出于安全考虑,Android 10(API级别29)及以上版本对明文通信(如HTTP而非HTTPS)进行了限制。这意味着,如果你尝试连接到本地网络或测试服务器(如IP地址192.168.134.10)而没有使用HTTPS,你的应用可能会遇到问题。如果你的服务器支持HTTPS,这是最简单且最安全的解决方案。你可以购买SSL证书并将其配置在服务器上,然后使用HTTPS协议进行通信。中添加网络安全性配置,以允许明文流量。方案一:使用HTTPS。

2025-03-19 09:47:30 354

原创 Android 代码获取系统Data剩余存储空间

【代码】Android 代码获取系统Data剩余存储空间。

2025-03-18 16:13:18 121

原创 Android Studio编译报错:Adding a packaging block may help, please refer to ******/Packaging

【代码】Android Studio编译报错:Adding a packaging block may help, please refer to ******/Packaging。

2025-03-12 11:41:58 229

原创 2024.1.2版本Android Studio gradle下载超时问题处理

在项目的根build.gradle里面配置了以下地址后,依旧下载gradle包失败,平常如果出现第三方库或者gradle下载失败,配置以下地址,一般可以下载成功。地址中的gradle版本改为自己的版本即可。

2025-02-11 11:01:49 500

原创 MobaXterm-使用MobaSSHTunnel进行端口映射

远程跳板机中有安卓系统的卡,即安卓机器,电脑端想要通过卡的ip,通过adb connect ip,会提示连接失败,因为端口没有映射到本地,无法访问,因此,需要将端口映射到本地电脑,就在电脑端可以正常使用了。映射的工具一般有两种:一种是XShell,另一种是MobaXterm。这里介绍MobaXterm的映射方式。

2024-12-31 11:51:14 539

原创 Android 搭建AIDL Client和Server端,双向通信

使用AIDL,搭建Client和Server端,实现跨进程通讯,即两个应用之间可以相互通讯。这里列举AIDL实现的方式和需注意的细节,并附上源码。Server 端:Client端:2.3 IOnServerCallback.aidl 文件三、Server端代码3.1 VcService (AIDL服务端具体逻辑实现)3.2 Server端主动发送消息给Client端3.3 AndroidManifest.xml配置四、Client端代码4.1 Clie

2024-12-20 10:45:08 746

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

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

2024-12-09 19:40:38 821

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

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

2024-12-07 11:35:48 359

原创 kotlin 枚举赋值写法

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

2024-12-03 09:49:46 109

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

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

2024-11-21 10:13:35 403

原创 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 537

原创 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 687

原创 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 354

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

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

2024-11-08 10:46:52 923

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

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

2024-11-06 17:55:13 840

原创 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 3865 1

原创 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 837

原创 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 2042

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

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

2024-10-22 16:43:35 425

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

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

2024-09-27 14:13:52 229

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

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

2024-09-23 14:15:52 801

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

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

2024-09-20 20:22:31 1619

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

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

2024-09-10 20:04:25 507

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

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

2024-09-02 17:31:28 1496 1

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

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

2024-09-02 16:10:44 2719 1

原创 kotlin 两种单实例写法

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

2024-08-31 18:03:00 307

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

1、修改1:亲测有效。

2024-08-29 10:58:40 835

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

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

2024-08-23 15:45:33 1252

原创 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 1720

原创 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 259

原创 Android-System 去除低电量Dialog

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

2024-08-20 11:38:58 215

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

stop adbdstart adbd。

2024-08-20 11:28:00 846

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

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

2024-07-01 17:14:51 2932 1

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

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

2024-06-28 14:34:23 316

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

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

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

原创 Android app和aar包混淆

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

2024-05-28 11:35:35 526

原创 Android Sensor 介绍

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

2024-05-23 19:10:24 214

jdk1.8.0-181.rar

window jdk 1.8开发包,下载后生成可直接使用

2025-02-08

gradle-8.7-bin资源包

gradle-8.7-bin资源包,下载后将后缀改为.zip,放到C:\Users\Administrator\.gradle\wrapper\dists\gradle-8.7-bin目录下 目录仅供参考,每个人电脑的路径可能不一致

2025-02-08

gradle-8.2-bin.rar

gradle-8.2-bin.rar资源包

2025-02-08

gradle-7.5资源包

包含gradle-7.5-all.zip和gradle-7.5-bin.zip

2025-02-08

jdk-11.0.19-windows-x64-bin.rar

window jdk 11开发包,下载后生成可直接使用

2025-02-08

非表单形式文件上传和下载

平常Android都是以表单上传文件居多,这里介绍的是以文件二进制数据上传和下载文件,将文件二进制流数据以Body形式上传和下载。

2025-01-09

AIDL Server端和Client端源码

源码中包含了Server端和Client端,通过搭建Server端和Client端,实现了Server端和Client端双向通讯,可以直接将该框架运用于自己项目,完成两个应用之间通讯。相关接口根据自己使用情景适当调整即可。

2024-12-20

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关注的人

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