- 博客(51)
- 资源 (3)
- 收藏
- 关注
原创 安卓代码获取系统属性值
安卓代码获取系统属性值前言代码实现前言大家可能知道,使用adb shell getprop命令可以直接获取系统属性值,但有时候需要在JAVA代码中获取系统属性,接下来说一下如何实现。代码实现在build.gradle的android下中添加如下代码,以找到android.os.SystemProperties类:String SDK_DIR = System.getenv("ANDROID_SDK_HOME")if(SDK_DIR == null) { Properties props
2022-02-18 10:59:17
2573
原创 Android Studio生成自定义apk和aar名称(带编译时间)
Android Studio生成自定义apk和aar名称前言自定义app名称自定义aar包名称代码中获取编译时间前言在Android studio中默认生成的apk、aar的名称都是app-release.apk、app-debug.apk、app-release.aar、app-debug.aar,通过修改app下的build.gradle可以自定义生成的apk、aar名称,接下来说一下如何操作。自定义app名称这里以生成"应用名+版本号+时间戳"格式的app名称为例,具体步骤如下:在build
2022-02-17 16:52:30
4327
原创 安卓APP自动更新功能实现
安卓APP自动更新功能实现前言代码实现前言安卓App自动更新基本上是每个App都需要具备的功能,接下来介绍一下实现自动更新的步骤。代码实现App自动更新主要分为新版本检测、升级弹窗、下载升级包、安装app这4个步骤,以下为MainActivity的实现代码(注意:目标升级版本和升级包下载地址实际需要向平台拉取):package com.example.testupgrade;import androidx.appcompat.app.AlertDialog;import androidx.
2022-02-17 10:43:44
7338
1
原创 Android Studio Git功能使用
Android Studio Git功能使用简介常用功能提交代码到远程分支合并分支代码拉新分支简介在Android Studio中使用自带的Git管理工具来进行版本管理,可以轻松应对需要频繁进行本地分支和远程分支操作的项目,比命令行执行Git操作要便捷不少。常用功能提交代码到远程分支完成代码修改后,点击Git右边的绿色Commit按钮:选择需要修改的文件,并添加注释(如"OCT | Mod 代码提交测试"),最后点击Commit即可提交代码到本地分支:点击VCS -->Git–>
2022-01-18 14:32:30
3080
原创 实用工具网站
实用工具网站视频转gifExcel转Markdown表格视频转gifhttps://ezgif.com/video-to-gifExcel转Markdown表格https://tableconvert.com
2022-01-14 17:24:04
181
原创 RecyclerView实现拖拽排序
RecyclerView实现拖拽item简介代码实现主页面xmlItem的xmlMainActivity代码简介使用RecyclerView和ItemTouchHelper可以方便地实现Item的拖拽排序,以下为实现效果:代码实现主页面xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xml
2022-01-14 16:03:29
2811
原创 网络问题常用排查方法
网络问题常用排查方法Window端常用命令ipconfig #查看本机ipping XXX #ping ipv4地址,XXX为url或ipping -6 XXX #ping ipv6地址,XXX为url或iptelnet XXX port #远程连接指定地址(ip可为ipv6地址),XXX为url或ipcurl XXX #curl ipv4地址,XXX为urlcurl -v6 XXX #curl ipv6地址,XXX为url常用网站https://www.speedtest.ne
2021-12-28 16:05:34
1610
1
原创 安卓读取蓝牙BLE设备信息
安卓读取蓝牙BLE设备信息简介轮询方式代码实现监听广播方式代码实现简介目前,许多项目都会涉及与BLE设备进行交互的功能,接下来说一下读取BLE设备信息的具体实现流程。安卓BLE相关接口介绍详见官网链接:https://developer.android.google.cn/guide/topics/connectivity/bluetooth-le轮询方式代码实现这里实现的示例代码,每60秒通过bluetoothManager查询当前是否有已连接的BLE设备,如果有,则与该设备建立GATT连接,读
2021-06-04 10:18:18
1696
原创 使用ContentProvider实现应用间数据共享
使用ContentProvider实现应用间数据共享简介代码实现服务端应用实现客户端应用实现简介使用ContentProvider可以方便地实现向第三方应用提供本应用数据的增删改查功能。详见官网介绍:https://developer.android.google.cn/guide/topics/providers/content-providers代码实现服务端应用实现新建一个类,实现ContentProvider的增删改查接口,并定义ContentProvider使用的url:packag
2021-05-19 20:17:30
350
原创 Messenger实现进程间双向通信
Messenger实现进程间双向通信简介代码实现服务端应用实现客户端应用实现简介https://developer.android.google.cn/guide/components/bound-services#Messenger代码实现服务端应用实现MessengerService接收客户端发送的消息:package com.test.messengerservice;import android.app.Service;import android.content.Intent;i
2021-05-19 17:05:48
286
原创 Android app和aar混淆方法
Android app和aar混淆方法app混淆方法aar包生成和混淆方法app混淆方法1.在build.gradle中,将minifyEnabled设置为true以开启混淆。apply plugin: 'com.android.application'android { compileSdkVersion 29 buildToolsVersion "29.0.3" defaultConfig { applicationId "com.xxx.xxx"
2021-04-26 11:25:05
1401
原创 Android使用DownloadManager下载文件
Android使用DownloadManager下载文件前言代码实现AndroidManifest.xmlMainActivity.java前言DownloadManager是处理长时间HTTP下载的系统服务,客户端可以将指定内容下载到某一特定的目录。DownloadManager会在后台进行下载工作,自己会处理下载失败、网络变换或系统重启等问题。接下来说一下如何使用DownloadManager。代码实现AndroidManifest.xmlAndroidManifest.xml中需要添加以下权
2021-04-06 17:48:20
862
原创 安卓获取设备蓝牙信息和连接状态
安卓获取设备蓝牙信息和连接状态前言代码实现AndroidManifest.xmlMainActivity.java前言最近做的app要用到蓝牙功能,下面说说安卓app如何获取设备蓝牙信息和连接状态。代码实现AndroidManifest.xmlAndroidManifest.xml需要加入如下权限:<uses-permission android:name="android.permission.BLUETOOTH" /><uses-permission android:na
2021-03-03 10:43:18
1111
原创 如何实现Android app开机自启动
这里写目录标题前言代码实现AndroidManifest.xmlBootReceiver.javaMainActivity.java、MyService.java问题解决前言上一篇文章如何实现无界面Android app介绍了如何使app仅在后台运行服务,而这样的app常常需要同时具备开机自启动的功能,接下来讲解一下实现app开机自启动的方法。代码实现AndroidManifest.xml为了实现开机自启动功能,app需要监听android开机广播,AndroidManifest.xml中需要添加
2021-01-18 16:24:20
11439
原创 如何实现无界面Android app
如何实现无界面Android app前言代码实现AndroidManifest.xmlMainActivity.javaMyService.java前言在Android开发中,可能会遇到只需要在后台运行服务,不需要界面的情况,接下来说一下如何实现无界面APP。代码实现AndroidManifest.xml在AndroidManifest.xml的主activity配置中加入以下代码:android:theme="@android:style/Theme.NoDisplay"以下为完整示例代码
2021-01-18 15:15:10
6361
2
原创 查看安卓手机文件系统方法
查看安卓手机文件系统方法前言查看方法前言查看安卓手机文件系统往往需要root权限,比较麻烦,接下来说一下如何用Android studio来查看安卓手机文件系统。查看方法手机连到Android studio,然后点击Android studio右下角的DeviceFileExplorer按钮:点击后即可看到Android手机文件系统的所有文件:打开data/app和data/data目录,即可查看app相关的文件,在开发app时可以根据需要查看文件:...
2021-01-14 16:24:45
7520
原创 使用Copper插件进行coap测试
使用Copper插件进行coap测试安装Copper插件使用Copper插件发送coap请求安装Copper插件执行以下命令,从git上下载Copper:git clone https://github.com/mkovatsc/Copper4Cr.git双击运行文件夹下的install.bat文件:在Chrome浏览器地址栏输入以下地址,然后打开右上角的开发者模式:chrome://extensions点击“加载已解压的扩展程序”按钮,先后选择Copper4Cr文件夹下的app文件夹
2021-01-12 17:11:43
1783
原创 adb无线调试安卓手机方法
adb无线调试安卓手机方法前言打开手机端口无线连接手机断开连接前言我们在进行Android开发时,一般都使用usb数据线连接电脑进行调试,但是这样会受到usb数据线的限制,不能灵活的移动手机,下面介绍一下如何无线调试手机。打开手机端口1.开启手机usb调试功能,并将手机通过usb连接到PC。2.在命令行输入以下命令,打开手机端口:adb tcpip 55553.命令执行成功后,即可拔掉usb线。无线连接手机1.将手机和PC连接到同一局域网下,查看手机的局域网ip地址,这里我的测试手机获取
2020-10-12 15:52:42
1045
原创 常用adb命令列表
常用adb命令设备相关安装卸载APK日志dumpsys设备相关#查看当前连接设备adb devices获取设备分辨率adb shell wm size获取设备序列号adb get-serialno查看设备CPU信息adb shell cat /proc/cpuinfo查看设备内存信息adb shell cat /proc/meminfo重启设备adb shell cat /system/build.prop安装卸载APK安装apkadb install xxx.a
2020-10-10 16:10:21
929
原创 Android应用加固(使用360加固保)
Android应用加固(使用360加固保)前言使用360加固保进行应用加固加固结果验证前言使用常见的反编译工具能够轻松地进行应用破解,然后对应用进行二次开发,甚至植入病毒。为了保护应用的安全,对于正式发布的apk,必须进行安全加固,下面介绍一下如何使用第三方加固软件轻松实现应用加固。使用360加固保进行应用加固1.下载加固软件登陆360加固保官网下载加固软件:https://jiagu.360.cn/#/global/download2.设置自动重签名由于应用加固时,会自动去除apk原有的签
2020-10-09 14:44:04
4005
原创 Android反编译工具使用方法
Android反编译工具使用方法前言apktool使用方法dex2jar使用方法jd-gui使用方法前言Android的反编译主要分为两个部分,一个是对资源的反编译(使用apktool),一个是对代码的反编译(使用dex2jar、jd-gui),下面介绍一下这些工具的使用方法。apktool、dex2jar、jd-gui可以通过如下链接下载:apktool使用方法apktool用于获取app的资源文件,可以提取出图片文件和布局文件,以下为apktool的具体使用步骤:1.解压下载后的文件,运行解压
2020-09-25 14:59:26
678
原创 JSBridge实现Android和H5交互
JSBridge实现Android和JS交互前言添加JSBridge库代码实现AndroidManifest.xmlactivity_main.xmljavascript.htmlMainActivity.java效果图前言相比于WebView的自带的JavascriptInterface的接口,使用JSBridge实现Android和JS之间的交互会更加方便和安全,接下来介绍一下JSBridge的具体用法。添加JSBridge库在Android Studio的app/build.gradle添加如
2020-09-24 10:18:37
1223
原创 Allatori混淆jar包后同时存在大小写类名解决
Allatori混淆jar包后存在大小写类名解决前言修改混淆后类名命名规则前言使用Allatori对jar包进行混淆后,可能会同时存在类似A.class和a.class的类,导致部分开发环境无法正常编译这样的jar包。接下来说说如何修改Allatori混淆时的命名规则,避免这种问题。修改混淆后类名命名规则进入Allatori官网的文档介绍页(http://www.allatori.com/doc.html),可以看到Allatori有以下几种类名规则配置,默认的compact模式会出现同时存在大小写
2020-09-15 14:17:39
768
原创 JS调用Android方法示例
JS调用Android方法示例前言示例代码AndroidManifest.xmlAndroidtoJs.javaactivity_main.xmlMainActivity.javajavascript.html测试前言目前很多App里都内置了Web网页(Hybrid App),这就涉及到Android客户端与Web网页交互的实现,接下来通过示例说明JS如何调用Android方法。示例代码AndroidManifest.xmlAndroidManifest.xml需要加入INTERNET权限:&l
2020-09-08 14:24:04
1403
原创 开发中常用的Git命令总结
1.获取远程仓库代码git clone [url]2.切换分支git checkout [branchName]3.增/删文件# 新增文件git add [fileName1] [fileName2] ...# 删除文件git rm [fileName1] [fileName2] ...4.代码提交# 提交修改,XXX为注释内容git commit -m "OCT | Mod XXX" [fileName1] [fileName2] ...# 推送修改到远程服务器git
2020-09-04 14:19:47
198
1
原创 Android Studio提高Logcat保存日志数量
打开Android Studio的安装目录,找到bin目录下的idea.properties文件,用notepad或其他软件打开:2.修改idea.cycle.buffer.size的值,提高缓存大小:3.重新打开Android Studio,Logcat已能保存大量日志,不会自动清屏。...
2020-09-01 16:03:29
1943
原创 Android Studio生成APK的基本流程
Android Studio生成APK流程修改版本号和文件名安全加固(可选)生成签名apk修改版本号和文件名根据需要,在app/build.gradle中修改app版本号:versionCode是app的大版本号,为数值类型,默认为1。versionName是app的具体版本号,为字符串类型,默认为1.0。根据需要,在app/build.gradle中添加如下代码进行文件名修改,这里修改文件名为wifiTest1.0.apk(默认文件名为app-release.apk): android.ap
2020-08-11 14:53:31
1464
原创 手机通过adb工具安装应用
手机通过adb工具安装应用前言安装adb工具连接手机执行安装命令前言日常生活中,可能会遇到需要将电脑上的第三方应用安装到手机的情况,接下来说说通过adb工具将电脑上的apk安装到手机的方法。安装adb工具详见我的另一篇文章:ADB调试工具安装连接手机将手机连接到电脑USB口,然后在windows命令行执行以下命令:adb devices能回显手机的序列号说明adb工具已成功连接到手机:执行安装命令windows命令行执行以下命令,将电脑上的apk安装到手机:adb install
2020-07-28 09:32:47
1486
原创 Android不同版本获取当前wifi信息方法
Android 9.0获取ssid方法获取权限获取权限在Android 9中,应用获取wifi信息需要开启定位权限,并在设备上启用位置服务,下图是官网的描述:所以我们需要在AndroidManifest.xml中添加如下权限:<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name="android.permission.ACCE
2020-07-22 17:42:45
1500
原创 Excel转Markdown表格
Excel转Markdown表格前言使用方法前言在开发工作中,可能会遇到需要将Excel转换成Markdown表格的情况,手动转换既费时又容易出错。接下来推荐一个好用的网站,可以快速将Excel转换成Markdown表格:https://tableconvert.com使用方法打开https://tableconvert.com点击菜单栏的import按钮,可以看到跳出的Import Data窗口:从Excel中复制一系列单元格并将其粘贴到文本框中,单击Import data按
2020-07-21 10:37:05
726
原创 Android导入jar包方法
Android导入jar包方法拷贝jar包到libs目录将jar包添加到dependencies拷贝jar包到libs目录切换到Project项目结构,可以看到app目录下有libs子目录:将下载好的jar包拷贝到libs目录(以bcprov.jar为例):将jar包添加到dependencies选中jar包,右键,选择Add As Library:在跳出弹框中点击ok,即可完成jar包导入:导入成功后,build.gradle文件的dependencies中会多出一行代码:impl
2020-07-21 10:15:20
2523
1
原创 Android实现CBC加解密
Android实现CBC加解密前言导入bcprov.jarAESCBCUtil.javaMainActivity.java运行结果前言CBC(Cipher-block chaining),即密码分组链接,是一种较为常用的加密模式。接下来介绍一下Android中实现CBC加解密的具体流程。导入bcprov.jar实现CBC加密需要用到bcprov.jar,百度网盘下载地址:链接:https://pan.baidu.com/s/11l9HybOcizxzdaea2iiECQ提取码:ijmzAESC
2020-07-21 09:16:59
633
1
原创 Android实现ECB加解密
Android实现ECB加解密前言AESUtils.javaMainActivity.java运行结果前言在Android开发中,出于安全考虑,常常需要对字段进行加密或解密,以下为Android实现ECB加解密的具体代码。AESUtils.java定义一个AESUtils类,实现加密、解密等方法:package com.example.ecb;import javax.crypto.Cipher;import javax.crypto.spec.SecretKeySpec;import j
2020-07-20 16:11:15
631
1
原创 Android根据版本号执行不同代码
Android根据版本号执行不同代码前言VERSION_CODES对应表代码示例前言由于在不同Android版本实现相同功能时,所需要的权限和调用的方法可能会存在差异,所以常常需要根据Android版本号执行不同代码。通过将手机的操作系统版本号与VERSION_CODES进行比较,就可以实现这样的代码逻辑。VERSION_CODES对应表参考另一篇文章:Android SDK版本号与API Level及VERSION_CODE的对应关系代码示例if(Build.VERSION.SDK_INT
2020-07-20 10:43:58
692
原创 Android SDK版本号与API Level及VERSION_CODE的对应关系
Platform VersionAPI LevelVERSION_CODEAndroid 9.028PAndroid 8.127O_MR1Android 8.026OAndroid 7.1, 7.1.125N_MR1Android 7.024NAndroid 6.023MAndroid 5.122LOLLIPOP_MR1Android 5.021LOLLIPOPAndroid 4.4W20KITKAT_...
2020-07-20 10:20:01
985
原创 Android Studio真机调试方法
Android Studio真机调试方法打开手机USB调试功能安装Google USB Driver连接手机,指定驱动程序选中手机,进行调试打开手机USB调试功能以华为Mate 20为例,在开发人员选项中打开“USB调试”开关(建议同时打开“仅充电”模式下允许ADB调试,防止USB调试自动关闭):安装Google USB Driver打开Tools->SDK Manager,在Android SDK->SDK Tools下找到Google USB Driver,勾选Google USB
2020-07-16 16:37:39
16293
3
原创 Android Studio项目的目录结构
Android项目的目录结构manifests(配置文件目录)java(源码目录)res(资源文件目录)Gradle Scripts(编译脚本目录)jniLibs(so库文件目录)assets(资产文件目录)manifests(配置文件目录)manifests用于存放安卓程序的配置文件,包含每个Android应用必须具备的AndroidManifest.xml文件。AndroidManifest.xml是整个Android应用的全局描述文件,在该文件中,需要标明应用名称,使用图标,Activity和Se
2020-07-10 14:40:56
1116
原创 Java的两种线程同步方法
Java的两种线程同步方法基本概念synchronizedLocksynchronized与Lock对比基本概念当多个线程同时操作一个可共享的资源时会出现线程安全问题,将会导致数据不一致,因此使用同步锁来防止该操作执行完之前不许被其他线程执行,从而保证了该变量的唯一性和准确性。使用synchronized和使用Lock是两种Java常用的实现线程同步方法。synchronized(1)介绍使用synchronized关键字,可以修饰普通方法、静态方法,以及语句块。由于java的每个对象都有一个内置
2020-06-08 10:54:48
482
原创 python文字转语音(附示例代码)
python文字转语音前言安装pyttsx3示例代码前言使用python的pyttsx3库可以轻松实现文字转语音功能,接下来说说pyttsx3的安装和使用方法。安装pyttsx3(1)命令行执行以下命令安装pyttsx3(使用国内镜像加快下载):pip3 install -i https://pypi.douban.com/simple/ pyttsx3(2)windows需要执行以下命令安装依赖包(使用国内镜像加快下载):pip3 install -i https://pypi.douba
2020-06-07 13:19:33
1849
2
原创 如何在电视上玩王者荣耀
如何在TCL电视上玩王者荣耀前言打开第三方应用安装权限安装腾讯游戏管家安装配置王者荣耀解决装备无法购买问题解决三技能无法加点问题前言打开第三方应用安装权限如果你的TCL电视无法安装第三方应用,参考我的另一篇文章先打开第三方应用安装权限:使用adb工具打开TCL电视的第三方应用安装权限安装腾讯游戏管家(1)到官网下载电视版的腾讯游戏管家apk(2)通过U盘或adb install命令在电视上安装下载的腾讯游戏管家apk:(3)在手机上安装手机版的腾讯游戏管家app。安装配置王者荣耀(1
2020-06-07 12:36:06
5817
RecycleViewTest.rar
2022-01-14
Android反编译工具
2020-09-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人