[Android] 免Root!空間不足救急法,增加手機內部可用的記憶體容量

當初在購買HTC Desire手機時,沒有特別注意到它使用空間不多的問題,所以導致現在裝了一些軟體之後,常常就跑出空間不足的警告訊息,因此網路上也就出現了許多的解決方法,通常Root + 燒ROM可能是比較多人討論的,不過因為手機還在保固內,若不想因Root而失去保固的話,只能先用下面的方法來救急,變更安裝路徑來節省空間,講明一點就是把應用程式的安裝目錄改到SD中,儘量減少手機空間的浪費。

更新

本文是以下指令的方法達成,嫌太麻煩嗎?有更容易的方法,請參考下文:[Android] 應用程式安裝程式 § 免指令、免Root,解除APP2SD的限制

說在前面

有時候安裝的軟體並無法使用APP2SD正點工具箱這類的工具將它移到SD卡上(因為也需要軟體本身的配合),不過本文的方法就可以做一些「改善」,強制開啟APP2SD的功能,既然只說改善,表示並非每一個應用程式都可以移到SD卡的,但清出一些空間出來是沒問題的。



操作教學

  1. 先確認電腦已經有安裝了「HTC Sync」軟體、以及Android SDK。關於SDK直接使用免安裝版的也行,我個人就是使用之前我分享出來的「Android SDK免安裝版」。或參考這一篇說明。
  2. 將手機設定成除錯模式:若以HTC Desire為例,請到「設定」→「應用程式」→「開發」→將「USB除錯中」的選項勾起

  3. 將手機接上USB與電腦連線,並使用CMD進入DOS模式,接著進入「tools」的目錄後輸入「adb devices」,如果有看到下圖類似紫色部分的訊息,代表已經連線成功。註:圖中黃色部分為指令,請各位自行參考

    J458_01 android space

  4. 輸入「adb shell pm setInstallLocation 2」就OK囉!最後一個數字「2」是代表將安裝位置設到SD卡中,而數字「1」則是強制安裝到手機上,「0」則是由APP自動決定是否可安裝到SD卡,因此,若要恢復預設值的話,只要同樣的步驟輸入「adb shell pm setInstallLocation 0」即可

    J458_02 android space

  5. 最後重新開機後就大功告成了,舉個實例,原本「Camera360」是無法移到SD卡的,經由上面的步驟後,進入系統的應用程式資訊就可以看到「移至SD卡」已經可以使用了。
    特別說明:在變更安裝路徑後,由左下圖發現在正點工具箱中,Camera360仍是屬於不可移動的APP,但只要從系統的「應用程式」→「管理應用程式」中觀看,就可以看到移至SD卡的選項了(右下圖)。

    J458_03 android space J458_04 android space

延伸閱讀:
[Android] 應用程式安裝程式 § 免指令、免Root,解除APP2SD的限制
[Android] 如何使用Android SDK來擷取手機上的畫面
如何設置HTC Desire桌布的大小、解析度
[Android] HTC Desire 手機鈴聲目錄設定(電話、鬧鐘、簡訊等鈴聲)



  • Anonymous

    救命…我CMD進入DOS模式,接著進入「tools」的目錄後進入「adb devices」一直失敗=="

  • http://www.blogger.com/profile/06146217401345184621 子靖

    那應該表示沒有連線成功…檢查一下是否有勾選除錯模式、Sync是否有安裝成功

  • Anonymous

    怎麼用CMD進入DOS?
    要按??

  • http://www.blogger.com/profile/06146217401345184621 子靖

    就是指命列列字元,WinXP可以由開始→執行→輸入cmd
    Win7可以從開始→在搜尋程式與檔案中輸入cmd來尋找

  • http://www.blogger.com/profile/06200705067614786427 merazure

    如何從C:\變成D:\???

  • http://www.blogger.com/profile/06146217401345184621 子靖

    打「d:」後按enter
    若你對Dos指令不熟,建議你直接用下面文章來達到同樣的效果:http://goo.gl/4e0YY

  • Anonymous

    HTC Sync 裡面的 microsoft visual c++ 2005
    無法安裝怎麼辦?!

  • http://www.blogger.com/profile/06146217401345184621 子靖

    不太懂你的意思耶

  • Anonymous

    我再安裝HTC Sync 的時候,面有一個microsoft visual c++ 2005
    他一直跑出 Command line option syntax

    error.Type Command/? for Help.
    的視窗

  • http://www.blogger.com/profile/06146217401345184621 子靖

    你的手機若是HTC的,這…可能就要詢問HTC為什麼喔!我個人是沒發生這個問題

  • Anonymous

    請問 這樣在更新軟體的時候會不會有無法儲存的情況?

  • http://www.blogger.com/profile/06146217401345184621 魏子靖

    有些應用在更新的時候,必需要放在手機上才行喔,不然無法更新

  • Anonymous

    我看不懂第3步驟耶 我電腦是window xp的

    • http://www.blogger.com/profile/06146217401345184621 魏子靖

      開始→執行→輸入「cmd」→按enter就行

  • Anonymous

    我有下載程式並且放在C:,路徑為C:\android-sdk-windows\tools
    我照上面打入後,最後的指令打"adb devices"
    他顯示為"不是內部或外部的命令、可執行的程式或批次檔"
    請問這方面是SDK版本太新(r17)嗎?
    作業程式:W7,手機:HTC explorer

  • http://www.blogger.com/profile/06146217401345184621 魏子靖

    這應該不是SDK的問題,確認一下是否已經切換到android-sdk-windows\tools下,並檢查adb是否存在、Java是否已經安裝

  • Anonymous

    感謝解答,我在tools底下細看,發現有.txt的檔案寫adb_has_moved,裡面內容為The adb tool has moved to platform-tools/

    If you don’t see this directory in your SDK,
    launch the SDK and AVD Manager (execute the android tool)
    and install “Android SDK Platform-tools"

    Please also update your PATH environment variable to
    include the platform-tools/ directory, so you can
    execute adb from any location.

    所以我就用他的程式下載Platform-tools就能用了(或許是因為版本為r17的關係)

    • http://www.blogger.com/profile/06146217401345184621 魏子靖

      原來如此,謝謝您提供的資訊喔

  • Anonymous

    我還是不會弄ㄟ= =
    r18的

    • http://www.blogger.com/profile/06146217401345184621 魏子靖

      用這個比較簡單:http://goo.gl/cSQOL

  • Anonymous

    請問SAMSUNG手機可以用嗎?

    • http://www.blogger.com/profile/06146217401345184621 魏子靖

      文章方法不限手機廠牌

  • http://www.blogger.com/profile/12469843268278800056 陳家財

    大大,你這個SDK “adb"要開SDK Manager 裝 Platform-tools才可以使用

    • http://www.blogger.com/profile/06146217401345184621 魏子靖

      文中有提到我是用Android SDK的免安裝版

  • Anonymous

    請問一下 如果HTC Sync 裝了之後但是沒有跟手機連上也可以嗎…

    • http://www.blogger.com/profile/06146217401345184621 魏子靖

      用這種指令的方法,要連上手機才行

  • Anonymous

    請問LG的手機會有自以為內部記憶體=SD卡的問題
    所以用了這方法似乎還是無法將檔案存智SD卡…
    請問有其他的補救方法嗎@@?

    • http://www.blogger.com/profile/06146217401345184621 魏子靖

      可外插SD卡嗎?如果不行的話,那可能要Root,把一些不要的東西拿掉了

  • Anonymous

    可以外插sd
    但是根據網路上文章 lg內部記憶體的名稱也是sd卡
    所以會造成軟體誤判檔案還是存手機內
    結果sd卡插進去一點用處都沒有只能看著他不會更動的大容量0.0

  • Anonymous

    tools?

    • http://www.blogger.com/profile/06146217401345184621 魏子靖

      本文是用指令來操作,APP請用:http://goo.gl/jh3R0

  • http://www.blogger.com/profile/11759540471467878003 老鼠爸爸

    真是抱歉~~我在DESIRE VC上面使用這個指令,adb shell pm setInstallLocation 2
    他出現的是:Error: unknown command ‘setInstallLocation’

    怎麼辦呢??

  • http://www.blogger.com/profile/12252720662229581518 Seven

    不好意思,之前有參考你一篇文章,裡面有教如何HTC Desire 2.2 破解他的Root,內容式下載一套國外的軟體superuser,請問一下因為我手機有些問題想拿回原廠重灌,因為我記得你好像有說過,可以回復原廠設定之類的,麻煩你可以給我那一批文章的網址嗎?謝謝

    • http://www.blogger.com/profile/06146217401345184621 魏子靖

      我從沒教過怎麼Root耶,是不是記錯了?我也很想知道你是參考哪一篇,我也需要 XD

  • http://www.blogger.com/profile/12252720662229581518 Seven

    喔喔~~對不起喔!!那是我搞錯了,真的很剛好那邊文章我有拷貝下來,我可以寄給你,我會寄到你gmail的信箱,你再收收看喔,只是真的是忘了在哪個網站上看的文章了,真是傷腦筋~~

    • http://www.blogger.com/profile/06146217401345184621 魏子靖

      呵沒關係,如果文章有拷貝下來,我想用Goolge一下是很容易找到的

  • http://www.blogger.com/profile/06146217401345184621 魏子靖
  • Anonymous

    我輸入adb devices後他顯示
    adb server is out of date. killing…
    ADB server didn’t ACK
    * fail to start daemon *
    error: unknown host service
    我htc sync安裝好手機也連上+除錯了
    現在該怎麼做? 我手機是SonyEricsson的

    • http://www.blogger.com/profile/06146217401345184621 魏子靖

      htc sync是給htc手機用的,你應該裝SE的driver試試

  • Anonymous

    請問moto xt550沒有htc sync,該怎麼處理,謝謝!

    • http://www.blogger.com/profile/06146217401345184621 魏子靖

      安裝moto xt550的driver就行了,HTC Sync是給HTC手機用的

  • Anonymous

    你好,我的手機是se的arc s, 我driver也裝了,指令下到adb devices也有,device attached也有,但是輸入 adb shell pm setInstallLocation 2後,就跑出Error:unknown command, 接著跑出一堆指示…
    簡單說就是沒有成功,怎麼辦?
    電腦是XP,謝謝…

  • http://www.blogger.com/profile/10417889115927185543 徐國維

    請問可不可以幫我貼一下MOTO XT550 的driver下載網址
    拜託~~

    • http://www.blogger.com/profile/06146217401345184621 魏子靖

      你可以google一下,應該有,或者直接安裝騰訊手機助手試試(http://sj.qq.com/)

  • http://www.blogger.com/profile/16487042586519689683 余小乖

    請問把SD卡卸除重裝或裝新的SD卡不會有問題嗎?

    • http://www.blogger.com/profile/06146217401345184621 魏子靖

      有可能喔,資料被移到SD卡了

  • http://www.blogger.com/profile/17455571845183068964 羅楷中

    可是我也是照上面的做
    然後做法都一樣
    顯示的結果也都一樣
    但是…我照著上面的重新開機之後
    原本不能移到SD卡中的東西還是一樣不能移啊!!!!
    怎麼回事了…我的手機是 hTC Desirs

    • http://www.blogger.com/profile/06146217401345184621 魏子靖

      我之前測試也是HTC Desire喔,應該沒問題,是不是你要移的東西是系統類的呢?

  • http://www.blogger.com/profile/02233085856099607086 莊天才

    htc desire s 可以嗎?
    弄了還是不可以改,打adb shell pm setInstallLocation 2 後會出現很多英文,這樣是OK的嗎?

    • http://www.blogger.com/profile/06146217401345184621 魏子靖

      理論上應該是可以的,會出現什麼英文呢

  • http://www.blogger.com/profile/06915388884555860017 法克 桑

    您好, 請問 adb shell pm setInstallLocation 2之後重啟手機,部份自行安裝的APP可以移至SD卡,但內建的APP如gmail,touch input,youtube,KKBOX等還是無法移到SD卡,請問這是正常的嗎?謝~

    • http://www.blogger.com/profile/06146217401345184621 魏子靖

      正常喔

  • http://www.blogger.com/profile/13803569403424213579 赭夜蝶

    我打了adb shell pm setInstallLocation 2後出現
    error:device not found
    而且在前一步驟輸入adb devices後會跑出來的那串紫色字我只跑出第一行的字
    第二行沒有跑出來耶

    • http://www.blogger.com/profile/06146217401345184621 魏子靖

      先確認你的手機的Driver有沒有安裝正常,聽你的描述像是沒捉到機子

  • Anonymous

    QAQ … 可以教我嘛

  • http://www.blogger.com/profile/01385724970727914569 阿廷

    請問samsung tab2 7.0可以用這樣的方式做嗎?? 如果可以那我的HTC sync 是要載samsung的哪一個??

    • http://www.blogger.com/profile/06146217401345184621 魏子靖

      您要試試才行喔,我沒有這個裝置
      HTC Sync的話,你要換成Samsung的驅動,存取的到就行

  • Anonymous

    版主謝謝你的文 幫了我很多 雖然我用了很久~還是謝謝你^^

  • http://www.blogger.com/profile/08806008603790915780 尹少昊

    我是平板,USB連結到電腦正常,但是執行指令時它顯示error:device not found. 請問是為什麼?

    • http://www.blogger.com/profile/06146217401345184621 魏子靖

      Driver沒裝好吧

  • Iven Lok

    手機連接到電腦指的是"透過電腦傳送"嗎? 我用的是HTC ONE X 全部的連接方式都試過了 但進入cmd時要怎樣打指令? 起始路徑是c:\documents and settings

    • http://www.jinnsblog.com/ 魏子靖

      手機連接到電腦就像你的USB連到電腦一樣
      下載Android SDK,切換到該目錄下,按照文中的說法做都行囉

  • saigan

    您好,我的是huawei g510
    依照上述方法重開後依然無法將app轉到sd卡上
    請問是否要在cmd出現* daemon started successfully *
    才算成功?

    • http://www.jinnsblog.com/ 魏子靖

      不是所有的APP都可以移到SD卡的喔,按照上面的方法,有成功就有成功,不能成功也是很正常的啦,這只是急救嘛

  • Issac

    你好,請問大大HTC BUTTERFLY S也可以這樣嗎?

    • http://www.jinnsblog.com/ 魏子靖

      你要試試才知道,可能不支援這麼新的手機

  • 林冠丞

    大大
    我的手機是Aria的
    在執行你上面敘述的"並使用CMD進入DOS模式,接著進入「tools」的目錄後輸入「adb devices」"這段時我有點搞不懂…..
    是要照著您圖片上的輸入還是依照我電腦中SDK的路徑輸入??然後我依照自己電腦SDK存放位置輸入路徑到tools之後再輸入adb devices卻是無法執行的
    能請問您要怎麼解決嗎?

    • http://www.jinnsblog.com/ 魏子靖

      進到你下載的SDK中,tools下,再來執行

  • Mara Zure

    請問我的智慧型手機是SONY XPERIA SP可以用?
    照上面來弄還是沒有出現搬移SD卡,因為是SP是無法支援?

    • http://www.jinnsblog.com/ 魏子靖

      我猜應該不支援喔,這個APP適合舊的機種

  • norton

    我輸入cd android-sdk_r08他跟我說系統找不到指定的路徑
    該怎麼辦

    • http://www.jinnsblog.com/ 魏子靖

      你要看你解壓到哪個目錄喔,android-sdk_r08只是我的範例

  • 威仔

    你好 我進步到tools

    • http://www.jinnsblog.com/ 魏子靖

      打cd tools,然後按enter

  • 簡妤臻

    您好、我用的是Xperia TX
    不知道可不可以用這個方法?

    • http://www.jinnsblog.com/ 魏子靖

      我猜可能不行啦,我手上沒有這一款手機喔,你可能要自己試試

  • 那 個安

    W7 CMD 怎麼進入DOS

    • http://www.jinnsblog.com/ 魏子靖

      文中就是用W7的喔

  • 那 個安

    她顯示 系統找不到路徑

    • http://www.jinnsblog.com/ 魏子靖

      那表示你進入目錄的點和你真際的位置不一樣,檢查一下路徑對不對

  • Nero Hung

    您好,我的是LG的L9,照著方法做後,反而會導致應用程式無法正常安裝,顯示儲存空間不足,但記憶卡內空間確認還很足夠,這是手機韌體的問題嗎?

    • http://www.jinnsblog.com/ 魏子靖

      很有可能,各品牌的手機都有些微的不同

  • 李承桓

    我的手機設定了之後軟體還是不會自動安裝到SD卡
    需要手動從設定裡面移動,
    請問是哪邊出了問題?我的手機是HTC Explorer
    在執行adb指令時沒有錯誤訊息

  • 黃文聖

    SDK不太會灌
    是不是很複雜
    HTC只能這樣操作嗎?

    • http://www.jinnsblog.com/ 魏子靖

      下載文中的SDK免安裝版,應該就行了
      這指令是Android平台的,所以不限是HTC

      • 黃文聖

        是電腦下載還是手機下載?

        • 黃文聖

          將手機接上USB與電腦連線,並使用CMD進入DOS模式,接著進入「tools」的目錄後輸入「adb devices」,如果有看到下圖類似紫色部分的訊息,代表已經連線成功。註:圖中黃色部分為指令,請各位自行參考

          文中這步動作怎麼進行?

        • http://www.jinnsblog.com/ 魏子靖

          電腦

          • 黃文聖

            將手機接上USB與電腦連線,並使用CMD進入DOS模式,接著進入「tools」的目錄後輸入「adb devices」,
            文中這步動作怎麼進行?

          • http://www.jinnsblog.com/ 魏子靖

            會DOS指令嗎?進入tools,要打cd tools,然後按enter,再輸入adb devices再按enter,以此類推

          • 黃文聖

            進入tools是什麼意思?

  • 王奕勛

    你好 我的手機是HTC Desire600 因為常常顯示內存空間不足 而且安卓版本又是4.1.2版本 無法把app移到sd卡 那就失去我買SD卡的本意了 在你這幾篇文章中學習到很多 也自己跟著妳的步驟一步一步做 我的疑問是 我從新開機以後 沒有把APP移到SD卡的按鈕 如果不行 還有其他辦法嗎 懇求幫助

    • http://www.jinnsblog.com/ 魏子靖

      無法將app移到SD通常是APP不支援,如果上面的方法不行,那麼就能ROOT後試試或者清出一點空間囉

  • 張祐綾

    你好,我的手機是HTC ONE SV的,照著板大的方法做到最後一步,卻出現Error:unknown command ‘setInstallLocation’,請問該怎麼辦呢?
    我爬文可是大家好像都沒有出現類似這樣的情況,想請問有沒有辦法解決呢><
    謝謝你 :D

    • http://www.jinnsblog.com/ 魏子靖

      請參考這邊的說明:http://goo.gl/1p7aOf

      • 張祐綾

        感謝板大分享!!
        已經成功了,真的太感動了,非常謝謝你><

      • Hong Wu

        板大您好 我的手機也是one sv
        已經 root + s-off 了
        也已經按照上面的流程做也成功了
        但怎麼還是不能將APP移動到16G記憶卡呢?

  • 施岳甫

    你好請問,我在下載Android SDK 後他會出現
    Windows無法開啟這個檔案,他會問你要手動打開還是進去瀏覽器?
    要選哪一個?如果是手動要選哪個程式?

    • http://www.jinnsblog.com/ 魏子靖

      這是7-zip的壓縮檔,用Winrar或7-Zip解壓就行了

      • 施岳甫

        所以是手動電腦裡本身就有的程式?

  • Carl Joseph

    如果手機沒有專用的driver 連接成功(list of devices attached)但沒抓到機子 最後的步驟卡死 求解

  • Guest

    @jinnsblog:disqus大大 如果手機沒有專用的driver 連接成功(list of devices attached)但沒抓到機子 最後的步驟卡死 求解

  • Carl Joseph

    @jinnsblog:disqus 大大 如果手機沒有專用的driver 連接成功(list of devices attached)但沒抓到機子 最後的步驟卡死 求解 有沒有辦法能夠讓他找到?

    • http://www.jinnsblog.com/ 魏子靖

      建議你可以安裝應用寶,他會自動去找手機的Driver:http://goo.gl/WKcztd

      • Carl Joseph

        他跟我說offline..

        • http://www.jinnsblog.com/ 魏子靖

          應用寶有幫你安裝Driver嗎

          • Carl Joseph

            沒有..

          • http://www.jinnsblog.com/ 魏子靖

            你再試試,他會有連線到server幫你尋找driver的訊息,如果沒有就是找不到了,另外,它會在你的手機上安裝一個client端的app,所以你的手機上還需要有一點點的小空間才行

  • WingYin Tang

    應該是 adb shell pm set-install-location 2

  • disqus_SXzjSk7qq7

    你好,我手機是HTC ONE SV,依照板主的方法做到最後一步,卻出現Error:unknown command ‘setInstallLocation’,請問要怎麼解決呢?
    我爬文過版主貼的http://goo.gl/1p7aOf此篇 但依然是…"Error:unknown command………"