1. 程式人生 > >Android裝置開機swap的方法

Android裝置開機swap的方法

裝置要求

裝置主要root
swap需要核心支援,不保證每一個安卓裝置都能成功開啟

如果自己有條件編譯原始碼,可以:
make menuconfig -> 開啟 Support for paging of anonymous memory (swap)選項
編譯即可

需要安裝的軟體

終端模擬器
busybox

以上兩款軟體可以在各大軟體市場搜尋下載

開始配置swap

開啟busybox軟體,安裝最新版busybox,需要root
開啟終端模擬器/使用usb debug電腦連線adb shell

1、 在SD卡建立swap檔案

su    #獲得root許可權
dd if=/dev/zero of=/sdcard/swapfile bs=1024 count=1024000

引數說明: bs是塊大小,count是總大小,bs*swap大小=count

of=”SD卡路徑(放置swap檔案的路徑)”/swapfile

注意:國產手機SD卡掛載路徑遍地開花,這裡的路徑需要自己替換為自己機子的SD卡路徑,不要照搬哦!

2、建立虛擬裝置

busybox mknod /dev/block/loop254 b 7 255 #建立虛擬裝置

建立一個虛擬裝置,loop254;如果loop254已存在,可以換成 loop+別的數字。
ls一下看看是否成功,254出現則成功
檢視loop虛擬裝置是否建立成功

3、虛擬裝置和swap建立聯絡

losetup  /dev/block/loop*  $Path_Swap_File  #swap檔案連線虛擬裝置

將虛擬裝置與swap映象檔案建立聯絡
loop*替換為剛剛建立的虛擬裝置:如loop254
$Path_Swap_File替換為 swap檔案路徑,如:/sdcard/swapfile

losetup /dev/block/loop254 /sdcard/swapfile  #我輸入的完整命令

4、格式化swap分割槽

busybox mkswap  /dev/block/loop*  

格式化swap分割槽,同樣*用數字代替,如:mkswap /dev/block/loop254


出現“Setting up swapspace version 1,size = XXX bytes UUID = XXX”字樣則格式化成功
格式化成功

5、開啟swap

busybox swapon  /dev/block/loop*  #loop需要需要替換如:loop254

開啟swap分割槽,如果沒有錯誤,則成功了。

6、最後的檢查

free

使用free命令檢視記憶體,如果swap不為0,則成功開啟
swap存在,成功

結束

有頭有尾,關閉swap命令:

busybox swapoff /dev/block/loop*   #loop後面數字需要替換