<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Jason_Flash的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Jason_Flash</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Jason_Flash]]></copyright><item><title><![CDATA[安卓代码获取系统属性值]]></title><link>https://blog.youkuaiyun.com/Jason_Flash/article/details/122998587</link><guid>https://blog.youkuaiyun.com/Jason_Flash/article/details/122998587</guid><author>Jason_Flash</author><pubDate>Fri, 18 Feb 2022 10:59:17 +0800</pubDate><description><![CDATA[安卓代码获取系统属性值前言代码实现
前言
大家可能知道，使用adb shell getprop命令可以直接获取系统属性值，但有时候需要在JAVA代码中获取系统属性，接下来说一下如何实现。
代码实现
在build.gradle的android下中添加如下代码，以找到android.os.SystemProperties类：
String SDK_DIR = System.getenv("ANDROID_SDK_HOME")
if(SDK_DIR == null) {
    Properties props ]]></description><category></category></item><item><title><![CDATA[Android Studio生成自定义apk和aar名称（带编译时间）]]></title><link>https://blog.youkuaiyun.com/Jason_Flash/article/details/122985517</link><guid>https://blog.youkuaiyun.com/Jason_Flash/article/details/122985517</guid><author>Jason_Flash</author><pubDate>Thu, 17 Feb 2022 16:52:30 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[安卓APP自动更新功能实现]]></title><link>https://blog.youkuaiyun.com/Jason_Flash/article/details/122976952</link><guid>https://blog.youkuaiyun.com/Jason_Flash/article/details/122976952</guid><author>Jason_Flash</author><pubDate>Thu, 17 Feb 2022 10:43:44 +0800</pubDate><description><![CDATA[安卓APP自动更新功能实现前言代码实现
前言
安卓App自动更新基本上是每个App都需要具备的功能，接下来介绍一下实现自动更新的步骤。

代码实现
App自动更新主要分为新版本检测、升级弹窗、下载升级包、安装app这4个步骤，以下为MainActivity的实现代码（注意：目标升级版本和升级包下载地址实际需要向平台拉取）：
package com.example.testupgrade;

import androidx.appcompat.app.AlertDialog;
import androidx.]]></description><category></category></item><item><title><![CDATA[Android Studio Git功能使用]]></title><link>https://blog.youkuaiyun.com/Jason_Flash/article/details/122554381</link><guid>https://blog.youkuaiyun.com/Jason_Flash/article/details/122554381</guid><author>Jason_Flash</author><pubDate>Tue, 18 Jan 2022 14:32:30 +0800</pubDate><description><![CDATA[Android Studio Git功能使用简介常用功能提交代码到远程分支合并分支代码拉新分支
简介
在Android Studio中使用自带的Git管理工具来进行版本管理，可以轻松应对需要频繁进行本地分支和远程分支操作的项目，比命令行执行Git操作要便捷不少。
常用功能
提交代码到远程分支
完成代码修改后，点击Git右边的绿色Commit按钮：

选择需要修改的文件，并添加注释（如"OCT | Mod 代码提交测试"），最后点击Commit即可提交代码到本地分支：

点击VCS --&gt;Git–&gt]]></description><category></category></item><item><title><![CDATA[实用工具网站]]></title><link>https://blog.youkuaiyun.com/Jason_Flash/article/details/122498776</link><guid>https://blog.youkuaiyun.com/Jason_Flash/article/details/122498776</guid><author>Jason_Flash</author><pubDate>Fri, 14 Jan 2022 17:24:04 +0800</pubDate><description><![CDATA[实用工具网站视频转gifExcel转Markdown表格
视频转gif
https://ezgif.com/video-to-gif
Excel转Markdown表格
https://tableconvert.com

]]></description><category></category></item><item><title><![CDATA[RecyclerView实现拖拽排序]]></title><link>https://blog.youkuaiyun.com/Jason_Flash/article/details/122495978</link><guid>https://blog.youkuaiyun.com/Jason_Flash/article/details/122495978</guid><author>Jason_Flash</author><pubDate>Fri, 14 Jan 2022 16:03:29 +0800</pubDate><description><![CDATA[RecyclerView实现拖拽item简介代码实现主页面xmlItem的xmlMainActivity代码
简介
使用RecyclerView和ItemTouchHelper可以方便地实现Item的拖拽排序，以下为实现效果：
代码实现
主页面xml
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xml]]></description><category></category></item><item><title><![CDATA[网络问题常用排查方法]]></title><link>https://blog.youkuaiyun.com/Jason_Flash/article/details/122193226</link><guid>https://blog.youkuaiyun.com/Jason_Flash/article/details/122193226</guid><author>Jason_Flash</author><pubDate>Tue, 28 Dec 2021 16:05:34 +0800</pubDate><description><![CDATA[网络问题常用排查方法
Window端
常用命令
ipconfig #查看本机ip

ping XXX #ping ipv4地址，XXX为url或ip
ping -6 XXX #ping ipv6地址，XXX为url或ip

telnet XXX port #远程连接指定地址（ip可为ipv6地址），XXX为url或ip

curl XXX #curl ipv4地址，XXX为url
curl -v6 XXX #curl ipv6地址，XXX为url

常用网站
https://www.speedtest.ne]]></description><category></category></item><item><title><![CDATA[安卓读取蓝牙BLE设备信息]]></title><link>https://blog.youkuaiyun.com/Jason_Flash/article/details/117549810</link><guid>https://blog.youkuaiyun.com/Jason_Flash/article/details/117549810</guid><author>Jason_Flash</author><pubDate>Fri, 04 Jun 2021 10:18:18 +0800</pubDate><description><![CDATA[安卓读取蓝牙BLE设备信息简介轮询方式代码实现监听广播方式代码实现
简介
目前，许多项目都会涉及与BLE设备进行交互的功能，接下来说一下读取BLE设备信息的具体实现流程。安卓BLE相关接口介绍详见官网链接：
https://developer.android.google.cn/guide/topics/connectivity/bluetooth-le
轮询方式代码实现
这里实现的示例代码，每60秒通过bluetoothManager查询当前是否有已连接的BLE设备，如果有，则与该设备建立GATT连接，读]]></description><category></category></item><item><title><![CDATA[使用ContentProvider实现应用间数据共享]]></title><link>https://blog.youkuaiyun.com/Jason_Flash/article/details/117038476</link><guid>https://blog.youkuaiyun.com/Jason_Flash/article/details/117038476</guid><author>Jason_Flash</author><pubDate>Wed, 19 May 2021 20:17:30 +0800</pubDate><description><![CDATA[使用ContentProvider实现应用间数据共享简介代码实现服务端应用实现客户端应用实现
简介
使用ContentProvider可以方便地实现向第三方应用提供本应用数据的增删改查功能。详见官网介绍：
https://developer.android.google.cn/guide/topics/providers/content-providers
代码实现
服务端应用实现
新建一个类，实现ContentProvider的增删改查接口，并定义ContentProvider使用的url：
packag]]></description><category></category></item><item><title><![CDATA[Messenger实现进程间双向通信]]></title><link>https://blog.youkuaiyun.com/Jason_Flash/article/details/117035624</link><guid>https://blog.youkuaiyun.com/Jason_Flash/article/details/117035624</guid><author>Jason_Flash</author><pubDate>Wed, 19 May 2021 17:05:48 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[Android app和aar混淆方法]]></title><link>https://blog.youkuaiyun.com/Jason_Flash/article/details/116145187</link><guid>https://blog.youkuaiyun.com/Jason_Flash/article/details/116145187</guid><author>Jason_Flash</author><pubDate>Mon, 26 Apr 2021 11:25:05 +0800</pubDate><description><![CDATA[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"
 ]]></description><category></category></item><item><title><![CDATA[Android使用DownloadManager下载文件]]></title><link>https://blog.youkuaiyun.com/Jason_Flash/article/details/115466209</link><guid>https://blog.youkuaiyun.com/Jason_Flash/article/details/115466209</guid><author>Jason_Flash</author><pubDate>Tue, 06 Apr 2021 17:48:20 +0800</pubDate><description><![CDATA[Android使用DownloadManager下载文件前言代码实现AndroidManifest.xmlMainActivity.java
前言
DownloadManager是处理长时间HTTP下载的系统服务，客户端可以将指定内容下载到某一特定的目录。DownloadManager会在后台进行下载工作，自己会处理下载失败、网络变换或系统重启等问题。接下来说一下如何使用DownloadManager。
代码实现
AndroidManifest.xml
AndroidManifest.xml中需要添加以下权]]></description><category></category></item><item><title><![CDATA[安卓获取设备蓝牙信息和连接状态]]></title><link>https://blog.youkuaiyun.com/Jason_Flash/article/details/114301401</link><guid>https://blog.youkuaiyun.com/Jason_Flash/article/details/114301401</guid><author>Jason_Flash</author><pubDate>Wed, 03 Mar 2021 10:43:18 +0800</pubDate><description><![CDATA[安卓获取设备蓝牙信息和连接状态前言代码实现AndroidManifest.xmlMainActivity.java
前言
最近做的app要用到蓝牙功能，下面说说安卓app如何获取设备蓝牙信息和连接状态。
代码实现
AndroidManifest.xml
AndroidManifest.xml需要加入如下权限：
&lt;uses-permission android:name="android.permission.BLUETOOTH" /&gt;
&lt;uses-permission android:na]]></description><category></category></item><item><title><![CDATA[如何实现Android app开机自启动]]></title><link>https://blog.youkuaiyun.com/Jason_Flash/article/details/112786310</link><guid>https://blog.youkuaiyun.com/Jason_Flash/article/details/112786310</guid><author>Jason_Flash</author><pubDate>Mon, 18 Jan 2021 16:24:20 +0800</pubDate><description><![CDATA[这里写目录标题前言代码实现AndroidManifest.xmlBootReceiver.javaMainActivity.java、MyService.java问题解决
前言
上一篇文章如何实现无界面Android app介绍了如何使app仅在后台运行服务，而这样的app常常需要同时具备开机自启动的功能，接下来讲解一下实现app开机自启动的方法。
代码实现
AndroidManifest.xml
为了实现开机自启动功能，app需要监听android开机广播，AndroidManifest.xml中需要添加]]></description><category></category></item><item><title><![CDATA[如何实现无界面Android app]]></title><link>https://blog.youkuaiyun.com/Jason_Flash/article/details/112782343</link><guid>https://blog.youkuaiyun.com/Jason_Flash/article/details/112782343</guid><author>Jason_Flash</author><pubDate>Mon, 18 Jan 2021 15:15:10 +0800</pubDate><description><![CDATA[如何实现无界面Android app前言代码实现AndroidManifest.xmlMainActivity.javaMyService.java
前言
在Android开发中，可能会遇到只需要在后台运行服务，不需要界面的情况，接下来说一下如何实现无界面APP。
代码实现
AndroidManifest.xml
在AndroidManifest.xml的主activity配置中加入以下代码：
android:theme="@android:style/Theme.NoDisplay"

以下为完整示例代码]]></description><category></category></item><item><title><![CDATA[查看安卓手机文件系统方法]]></title><link>https://blog.youkuaiyun.com/Jason_Flash/article/details/112615873</link><guid>https://blog.youkuaiyun.com/Jason_Flash/article/details/112615873</guid><author>Jason_Flash</author><pubDate>Thu, 14 Jan 2021 16:24:45 +0800</pubDate><description><![CDATA[查看安卓手机文件系统方法前言查看方法
前言
查看安卓手机文件系统往往需要root权限，比较麻烦，接下来说一下如何用Android studio来查看安卓手机文件系统。
查看方法
手机连到Android studio，然后点击Android studio右下角的DeviceFileExplorer按钮：

点击后即可看到Android手机文件系统的所有文件：

打开data/app和data/data目录，即可查看app相关的文件，在开发app时可以根据需要查看文件：


...]]></description><category></category></item><item><title><![CDATA[使用Copper插件进行coap测试]]></title><link>https://blog.youkuaiyun.com/Jason_Flash/article/details/112535409</link><guid>https://blog.youkuaiyun.com/Jason_Flash/article/details/112535409</guid><author>Jason_Flash</author><pubDate>Tue, 12 Jan 2021 17:11:43 +0800</pubDate><description><![CDATA[使用Copper插件进行coap测试安装Copper插件使用Copper插件发送coap请求
安装Copper插件
执行以下命令，从git上下载Copper：
git clone https://github.com/mkovatsc/Copper4Cr.git

双击运行文件夹下的install.bat文件：

在Chrome浏览器地址栏输入以下地址，然后打开右上角的开发者模式：
chrome://extensions


点击“加载已解压的扩展程序”按钮，先后选择Copper4Cr文件夹下的app文件夹]]></description><category></category></item><item><title><![CDATA[adb无线调试安卓手机方法]]></title><link>https://blog.youkuaiyun.com/Jason_Flash/article/details/109027133</link><guid>https://blog.youkuaiyun.com/Jason_Flash/article/details/109027133</guid><author>Jason_Flash</author><pubDate>Mon, 12 Oct 2020 15:52:42 +0800</pubDate><description><![CDATA[adb无线调试安卓手机方法前言打开手机端口无线连接手机断开连接
前言
我们在进行Android开发时，一般都使用usb数据线连接电脑进行调试，但是这样会受到usb数据线的限制，不能灵活的移动手机，下面介绍一下如何无线调试手机。
打开手机端口
1.开启手机usb调试功能，并将手机通过usb连接到PC。
2.在命令行输入以下命令，打开手机端口：
adb tcpip 5555

3.命令执行成功后，即可拔掉usb线。
无线连接手机
1.将手机和PC连接到同一局域网下，查看手机的局域网ip地址，这里我的测试手机获取]]></description><category></category></item><item><title><![CDATA[常用adb命令列表]]></title><link>https://blog.youkuaiyun.com/Jason_Flash/article/details/108997816</link><guid>https://blog.youkuaiyun.com/Jason_Flash/article/details/108997816</guid><author>Jason_Flash</author><pubDate>Sat, 10 Oct 2020 16:10:21 +0800</pubDate><description><![CDATA[常用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
安装apk
adb install xxx.a]]></description><category></category></item><item><title><![CDATA[Android应用加固（使用360加固保）]]></title><link>https://blog.youkuaiyun.com/Jason_Flash/article/details/108977648</link><guid>https://blog.youkuaiyun.com/Jason_Flash/article/details/108977648</guid><author>Jason_Flash</author><pubDate>Fri, 09 Oct 2020 14:44:04 +0800</pubDate><description><![CDATA[Android应用加固（使用360加固保）前言使用360加固保进行应用加固加固结果验证
前言
使用常见的反编译工具能够轻松地进行应用破解，然后对应用进行二次开发，甚至植入病毒。为了保护应用的安全，对于正式发布的apk，必须进行安全加固，下面介绍一下如何使用第三方加固软件轻松实现应用加固。
使用360加固保进行应用加固
1.下载加固软件
登陆360加固保官网下载加固软件：
https://jiagu.360.cn/#/global/download
2.设置自动重签名
由于应用加固时，会自动去除apk原有的签]]></description><category></category></item></channel></rss>