【Android 热修复】热修复原理 ( Dex 文件拷贝后续操作 | 外部存储空间权限申请 | 执行效果验证 | 源码资源 )
生活随笔
收集整理的這篇文章主要介紹了
【Android 热修复】热修复原理 ( Dex 文件拷贝后续操作 | 外部存储空间权限申请 | 执行效果验证 | 源码资源 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、Dex 文件準備
- 二、外部存儲空間權限申請
- 1、清單文件申請權限
- 2、動態申請權限
- 三、文件拷貝
- 1、文件拷貝
- 2、執行效果
- 四、 源碼資源
一、Dex 文件準備
在 【Android 熱修復】熱修復原理 ( 修復包 Dex 文件準備 | Dex 優化為 Odex | Dex 文件拷貝 | 源碼資源 ) 博客中 , 進行了文件拷貝簡單操作 ;
將 SD 卡跟目錄中的文件 /storage/emulated/0/update.dex , 拷貝到了 /data/user/0/kim.hsl.hotfix/app_odex/update.dex 目錄中 ;
二、外部存儲空間權限申請
1、清單文件申請權限
在 AndroidManifest.xml 清單文件中聲明 SD 卡讀寫權限 ;
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"package="kim.hsl.hotfix"><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/Theme.HotFix"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>2、動態申請權限
在 MainActivity 中的 onCreate 方法中動態申請權限 : 參考 【Android 應用開發】Google 官方 EasyPermissions 權限申請庫 ( 最簡單用法 | 一行代碼搞定權限申請 | 推薦用法 ) 博客 ;
EasyPermissions.requestPermissions(this,"權限申請原理對話框 : 描述申請權限的原理",100,// 下面是要申請的權限 可變參數列表Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE );三、文件拷貝
1、文件拷貝
文件拷貝代碼 , 從 SD 卡 /storage/emulated/0/update.dex ,
拷貝到應用內部存儲 /data/user/0/kim.hsl.hotfix/app_odex/update.dex ;
2、執行效果
在 adb shell 命令行中查看 /data/user/0/kim.hsl.hotfix/app_odex/ 目錄內容 ;
四、 源碼資源
源碼資源 :
- GitHub 地址 : https://github.com/han1202012/HotFix
- CSDN 源碼快照 : https://download.csdn.net/download/han1202012/16651312
總結
以上是生活随笔為你收集整理的【Android 热修复】热修复原理 ( Dex 文件拷贝后续操作 | 外部存储空间权限申请 | 执行效果验证 | 源码资源 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 热修复】热修复原理 (
- 下一篇: 【Android 热修复】热修复原理 (