1. 程式人生 > >Android 替換應用內so檔案避免每次都要重新打包的麻煩

Android 替換應用內so檔案避免每次都要重新打包的麻煩

因工作需要,開發除錯每次都要先編譯so,再打包apk,然後再裝機除錯,很麻煩,就想有沒有辦法直接用新打包的so直接替換apk裡的,這樣省去了不少麻煩。終算是有兩種辦法。

第一種辦法:

0.root手機:一般用各種手機助手都可以,一種不行可以換另一種,不同的手機可能需要不同的工具

1.終端連線上手機:

    (1)adb shell

    (2)su

2.修改相關資料夾和檔案的許可權:正常情況下很多檔案都許可權不夠,為了方便修改的時候可以把涉及到的都修改為777(就是所有人都有讀寫執行的許可權)

假如我想替換com.test這個程式裡的so,那麼:

    (1)chmod 777 /data

    (2)chmod 777 /data/data

    (3)chmod 777 -R /data/data/com.test   (加上-R是表示遞迴全修改為777,但是呢so全都在lib裡,而這裡lib是個軟鏈,所以應該把lib對應的資料夾的許可權修改)

    (4)chmod 777 -R /data/app-lib/com.test-1 (這個字尾-1是系統加的,具體原因不知)

不同手機可能路徑不一樣,可以根據名稱以及軟鏈找到相應的。

3.push新版so:adb push *** /data/app-lib/com.test-1(把星號位置換成新so的路徑)

第二種辦法:

第二種辦法前幾步都和第一種一樣,需要修改相應的許可權,只是第三步藉助一下eclipse,更介面化的操作。

    (1)調出DDMS

    (2)選中File Explorer選項(如果沒有的話)點Window->Show View->File Explorer即可顯示出來

    (3)按需要的檔案去push或者pull就可以了。

注意:在使用eclipse的時候,如果手機和電腦斷開一下,再連線上,會刷出來檔案系統目錄,但是這個時候去操作push或者pull都會失敗,這個時候需要選中一下左邊Devices下面的手機一下,選中後會自動刷一下檔案目錄。如下圖。


相關推薦

Android 替換應用so檔案避免每次重新打包麻煩

因工作需要,開發除錯每次都要先編譯so,再打包apk,然後再裝機除錯,很麻煩,就想有沒有辦法直接用新打包的so直接替換apk裡的,這樣省去了不少麻煩。終算是有兩種辦法。 第一種辦法: 0.root手機:一般用各種手機助手都可以,一種不行可以換另一種,不同的手機可能需要不同

Android Studio快速匯入SO檔案與jAR包

首先將你需要匯入的jar包和so檔案 直接拷貝至Projuect目錄下的lib包下 在Module層級下的build.gradle檔案裡寫入此段程式碼 sourceSets{ main

android 7.0 因為.so檔案而崩潰事件解決

菜鳥進場,方圓十里,寸草不生 現在基本都在用第三方的分享,但是不知道為什麼,腦殘的準備自己整合微博的第三方分享,本來一路躺坑都過來了,不過遇到一個奇葩的問題,軟體在android N上會崩潰,其實也就是在android7.0上會崩潰,其他手機都好的,網上查的話

android app應用更新

1.表現形式:下載完成後會自動彈出安裝介面。已適配7.0. 2.github 地址 https://github.com/hunanqi/HNQApkInstall 3.使用方式:   (1)在專案的的gradle檔案中加上: maven { url 'https:

Android中NDK的so檔案產生和使用

使用工具:eclipse 1.生成so檔案 1.1.開啟Eclipse,新建一個Android工程 FileàNewàAndroid Application Project 一路Next下去,直到Finish。 1.2.新增so檔案 工程右鍵--Android Too

Android動態選擇性載入so檔案

先說問題,專案中只提供了 armeabi 目錄下的基礎so檔案,對於大多數的機型都是支援的,但是在最近使用的一個第三方庫中,只提供了 v6、v7 跟 x86 機型的so檔案,將v7中so放在 armeabi 下面,在 x86 的機子上會 crash,如果再在li

安卓防破解自用筆記(1)android studio 開發生成so檔案

1. 我這使用的是mac book pro,安裝的Android studio版本在此時此刻還算可以用, 可能不是最新的,但我不要求一定要最新的。為了防止今後看到這個文章跟自己的出現的問題無法對上,我先登記一下我使用的系統版本及as版本號。 2. 在官方或其它渠道下載一

android H5 應用跳轉Scheme協議

直接進入主題 想必大家在開發專案的過程中,都會遇到android與H5介面的互動。並且還有H5介面 跳轉到APP內部的功能需要,同志們可能就會想,我們要用什麼方法來做。那麼接下來我們直接開擼,今天要講解的應用內跳轉Scheme協議 什麼是URL Sc

Android Studio中配置so檔案的方法

    最近要在專案中加入百度地圖api的支援。剛開始的時候總是出現     Error inflating class com.baidu.mapapi.map.MapView這個錯誤,對照百度地圖給的demo之後發現是沒有在自己繼承的Application類裡面加入S

Android WebView-應用嵌入瀏覽器

       移動應用開發,web app、Native app的討論已經很久了,純粹的web app還很少,多少能見到Native + web混合的app,混合的app是在Native app中寫一個

Android應用下載更新app,apk包在Android7.0以上系統安裝失敗

最近又更新了一下Android studio的gradle版本 結果。。。 與儲存相關的無一倖免,Android6.0引入的動態許可權控制(Runtime Permissions),Android7.0又引入“私有目錄被限制訪問”,“StrictMode API 政策”。

Android線上應用更新(站更新) 適配6.0、7.0、8.0

概要 線上應用內更新 在APP開發中是最基礎的一項功能。主要可以分為以下幾步: 獲取當前版本資訊; 獲取後臺線上版本資訊; 版本對比,提示更新 點選取消,跳過更新,進入app 點選確定,開始下載 下載結束,提示安裝 正文 這裡略過1—4步驟,

Windows下編譯使用Android NDK,呼叫SO檔案

下載後把壓縮包解壓出來,例如:D:\ndk,目錄下的ndk-build.cmd就是用來編譯的批處理命令。 這裡以D:\ndk\samples\hello-jni為例,開啟D:\ndk\samples\hello-jni\jni\hello-jni.c檢視程式碼: /* * Copyri

android studio裡面新增.so檔案

第一遇到需要新增.so檔案到工程裡。在網上收了很多資料,都是差不多的方法,試了又試,總是不成功,最後還是請教的朋友。現在把方法寫出來,分享給大家。希望遇到同樣問題的人能少走彎路。 1.首先新建一個資料夾,以armeabi命名,把要引用的.so檔案放到這個資料夾下面。 2.把

Android Studio 簡單生成so檔案並呼叫

第1步:新建一個Android Studio 工程 JniHelloWorld。新建一個MyJni.java檔案。 MyJni.java public class MyJni { static { System.loadLi

android 5.0以上so檔案關於平臺支援問題的淺析

背景 近期,因為一些原因,需要整理一個最簡單的外掛框架使用的demo,此過程中出現了一個非常詭異的問題, 在實際專案中一直執行正常的一些外掛,在demo裡面卻執行崩潰,得到的異常資訊如下:06-01 15:44:59.462 26609 26609 E Instrument

Android 反除錯、so檔案注入

關鍵程式碼: Thread t=new Thread(new Runnable() { @Override public void run() {

Android Studio NDK及so檔案開發 以及常見錯誤

LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := demo LOCAL_SRC_FILES := demo.cpp include $(BUILD_SHARED_LIBRARY) andr

Android Studio NDK及so檔案開發(一)

部落格借鑑: 前言: 1、什麼是NDK? NDK全稱是Native Development Kit,NDK提供了一系列的工具,幫助開發者快速開發C(或C++)的動態庫,並能自動將so和java應用一起打包成apk。NDK集成了交叉編譯器(交叉編譯器

Android漫遊記(4)---.so檔案動態除錯一例

    Android平臺的動態除錯一直以來是個困擾我等Coder的頭疼問題,特別是對於本地的動態除錯支援,可以說是“弱智”級別的,不知道Google的新版NDK和新出的Android Studio對這塊支援如何,讓我們拭目以待。     言歸正傳,我這裡採用的是cygwi