俞木發(fā)
對(duì)于使用Android手機(jī)的用戶來(lái)講,無(wú)論你是直接從市場(chǎng)里點(diǎn)擊安裝的APP,還是通過(guò)下載后安裝的,實(shí)際上,都無(wú)法逃脫與一種APK格式的文件打交道的過(guò)程。因此如果要把Android手機(jī)玩通透,我們就要深入認(rèn)識(shí)和掌握這種文件格式及其使用技巧,相信你的手機(jī)會(huì)用得更加得心應(yīng)手。
APK是Android Package的縮寫,直譯過(guò)來(lái)即Android安裝包(APK),它是安卓系統(tǒng)上的一種可執(zhí)行文件,類似iOS平臺(tái)上的.ipa文件、Windows平臺(tái)上的.exe文件。它其實(shí)是ZIP格式的一個(gè)壓縮包,可以在Windows平臺(tái)下直接使用7ZIP將其打開(kāi),其中的Dex文件(即Dalvik VMexecutes)就是Android Dalvik(安卓虛擬機(jī))執(zhí)行主程序(見(jiàn)圖1)。
一般一個(gè)APK文件主要由LIB目錄等幾個(gè)主要文件(夾)組成,我們?nèi)粘=佑|到的主要是如下表所示的文件(夾)。
現(xiàn)在一些x86安卓設(shè)備在運(yùn)行一些APK時(shí)會(huì)出現(xiàn)無(wú)法安裝或者閃退的情況,原因大多就是由于LIB文件夾沒(méi)有專為x86處理器適配的運(yùn)行庫(kù)文件所致,此時(shí)一般只要下載For x86專版即可。比如MoboPlayer x86播放器,打開(kāi)APK文件后即可看到x86目錄,這種版本就可以在英特爾芯平板上完美運(yùn)行(見(jiàn)圖2)。此外ARM處理器架構(gòu)有ARMV7、ARMV8、ARM9等之分,一些特殊應(yīng)用(主要是和顯卡密切相關(guān),如視頻播放器、3D手游等)為了保證兼容性,在LIB目錄還會(huì)有類似ARM-v7a之類的名稱,因此這類應(yīng)用最好下載和自己設(shè)備ARM類型一致的版本。
不走尋常路——玩轉(zhuǎn)APP另類安裝
平時(shí)對(duì)于應(yīng)用的安裝,大家一般都是通過(guò)直接點(diǎn)擊鏈接和下載的方法進(jìn)行。不過(guò)這種常規(guī)的安裝方法有不少弊端,比如無(wú)法批量安裝、無(wú)法安裝到系統(tǒng)目錄等。其實(shí)應(yīng)用的安裝還有更多簡(jiǎn)潔、高效的方法。
1. 批量安裝應(yīng)用
在新買手機(jī)或者手機(jī)進(jìn)行系統(tǒng)恢復(fù)后,我們經(jīng)常要安裝很多應(yīng)用。如果需要批量安裝多個(gè)應(yīng)用,大家可以借助第三方安裝工具。以豌豆莢為例,首先在電腦上下載好需要安裝的應(yīng)用,接著將手機(jī)和豌豆莢成功連接后,在電腦上啟動(dòng)豌豆莢并切換到“應(yīng)用和游戲管理”,然后點(diǎn)擊“安裝新應(yīng)用”,將本地已經(jīng)下載好的應(yīng)用全部導(dǎo)入安裝列表,點(diǎn)擊“安裝”即可(見(jiàn)圖3)。
2. 安裝應(yīng)用到系統(tǒng)目錄
平時(shí)用品牌機(jī)的用戶都知道手機(jī)上會(huì)預(yù)裝不少出廠的應(yīng)用,這些應(yīng)用無(wú)法卸載,而且可以在每次使用系統(tǒng)重置后自動(dòng)恢復(fù)。其實(shí)對(duì)于自己需要經(jīng)常使用的應(yīng)用,也可以將其安裝為系統(tǒng)應(yīng)用。比如喜歡使用微信的用戶就可以將微信安裝為系統(tǒng)應(yīng)用,這樣每次系統(tǒng)重置后就不需要再次安裝了。
首先確保你的設(shè)備已經(jīng)ROOT,接著按照常規(guī)的方法安裝微信,接著在手機(jī)上啟動(dòng)“Link2SD”,然后在應(yīng)用的列表長(zhǎng)按微信,在彈出的菜單選擇“轉(zhuǎn)為系統(tǒng)應(yīng)用”,這樣“Link2SD”會(huì)在后臺(tái)自動(dòng)將微信的文件復(fù)制到“/system/app”下(見(jiàn)圖4)。
按提示重啟設(shè)備后,打開(kāi)豌豆莢后切換到“系統(tǒng)預(yù)裝”,這里可以看到現(xiàn)在微信就變?yōu)槭謾C(jī)預(yù)裝的應(yīng)用,使用普通的方法無(wú)法將其卸載,而且系統(tǒng)重置后我們就可以繼續(xù)使用微信了(見(jiàn)圖5)。
2013年第20期《管好你的應(yīng)用 走進(jìn)Android APK文件的世界》一文詳細(xì)介紹如何手動(dòng)將APK變?yōu)橄到y(tǒng)應(yīng)用。手動(dòng)復(fù)制方法的原理其實(shí)是和Link2SD一樣的,只是Link2SD使用更為簡(jiǎn)單,更適合新手的使用。不過(guò)手動(dòng)復(fù)制方法則可以讓大家更清楚地了解系統(tǒng)預(yù)裝APK的運(yùn)行原理。
設(shè)備ROOT可能會(huì)帶來(lái)一些不可測(cè)的后果,比如錯(cuò)誤編輯系統(tǒng)文件可能導(dǎo)致系統(tǒng)崩潰,一些品牌機(jī)如三星手機(jī),自己隨意ROOT則可能造成保修失效。所以大家在進(jìn)行ROOT之前,一定要注意是否會(huì)給自己的設(shè)備造成什么樣的影響!
我們也可以使用手動(dòng)復(fù)制應(yīng)用到上述目錄的方法將應(yīng)用變?yōu)橄到y(tǒng)應(yīng)用(如果應(yīng)用還有LIB目錄,則需要手動(dòng)將LIB目錄下的文件復(fù)制到/system/lib),并且為其配置合適的權(quán)限。如果想將已安裝的應(yīng)用在手機(jī)內(nèi)存和SD卡中互轉(zhuǎn),比如要將安裝在SD卡的應(yīng)用移動(dòng)到手機(jī)內(nèi)存中,我們只要找到SD上的應(yīng)用文件和.so文件,然后手動(dòng)移動(dòng)到“/data/app”和“data/data/下即可。
深入APK——定制符合自己使用的APK
在日常使用中,由于應(yīng)用默認(rèn)安裝經(jīng)常會(huì)給我們的使用帶來(lái)不便,如很多英文軟件安裝后顯示的是英文名稱,這給英文不好的同學(xué)帶來(lái)諸多不便。因此我們可以手動(dòng)對(duì)APK進(jìn)行編輯,定制符合自己使用的APK。這里以APK應(yīng)用改名為例。
1. 更改應(yīng)用快捷方式名稱
大家知道,Android都是使用多個(gè)虛擬桌面,對(duì)于自己經(jīng)常使用的應(yīng)用,我們經(jīng)常會(huì)將其拖動(dòng)到第一桌面。這里的應(yīng)用圖標(biāo)實(shí)際上和Windows桌面的快捷方式是一樣的(不過(guò)Android的設(shè)備默認(rèn)不支持修改快捷方式的名字)。對(duì)于原來(lái)是英文的應(yīng)用,我們可以借助“GO桌面”輕松進(jìn)行更改。
在手機(jī)上切換到GO桌面,進(jìn)入應(yīng)用列表后長(zhǎng)按需要更改桌面的英文應(yīng)用,點(diǎn)擊上方的“發(fā)送到桌面”,接著在桌面長(zhǎng)按選中需要改名的快捷方式,在彈出的菜單中選擇“重命名”,這樣可以將應(yīng)用快捷方式改為自己需要的中文名稱(見(jiàn)圖6)。
2. 自行編譯應(yīng)用名稱
上述方法由于需要用到第三方桌面,一些朋友可能并不喜歡使用GO桌面。如果要對(duì)應(yīng)用改名,我們還可以通過(guò)對(duì)應(yīng)用進(jìn)行編譯的方法來(lái)實(shí)現(xiàn)。因?yàn)閼?yīng)用的名稱是由APK內(nèi)部文件決定,因此需要對(duì)APK進(jìn)行編譯,并且需要重新簽名才能正常安裝。這里我們以“com.betterandroid.bettercut.apk”文件為例。應(yīng)用默認(rèn)安裝后顯示的是“bettercut”的名稱,實(shí)際上它是一款創(chuàng)建快捷方式的應(yīng)用。下面就將它改名為“創(chuàng)建快捷方式”。
首先在電腦上使用7-ZIP打開(kāi)APK文件,然后將其中的“resources.arsc”解壓到桌面?zhèn)溆茫又陔娔X上啟動(dòng)“ArscEditor”,然后將上述解壓的文件拖入程序窗口,接著切換到“string”,其中“App_name”對(duì)應(yīng)的就是程序名稱?,F(xiàn)在按提示在“區(qū)域值”文本框輸入自己想要的名稱“創(chuàng)建快捷方式”,點(diǎn)擊“保存當(dāng)前值”(見(jiàn)圖7)。
完成應(yīng)用的改名后返回桌面,然后將修改過(guò)的“resources.arsc”文件重新拖到7-ZIP窗口,替換原來(lái)APK文件中的同名文件(見(jiàn)圖8)。
繼續(xù)在電腦上啟動(dòng)“AndroidResEdit”,啟動(dòng)程序后點(diǎn)擊“簽名→簽名APK文件”,接著在打開(kāi)的窗口選擇上述修改過(guò)“resources.arsc”文件的APK文件,點(diǎn)擊“立即簽名”,然后將簽名的文件另存,成功完成簽名后就可以在手機(jī)上正常安裝了(見(jiàn)圖9)。
現(xiàn)在將修改過(guò)的APK文件安裝在手機(jī)上,可以看到在安裝界面,應(yīng)用的名稱已經(jīng)顯示為“創(chuàng)建快捷方式”,剩下的操作按常規(guī)的方式安裝即可(見(jiàn)圖10)。
因?yàn)檫@里對(duì)應(yīng)用進(jìn)行了重新簽名,所以如果安裝同一應(yīng)用,需要將舊應(yīng)用卸載后才能安裝改名后的應(yīng)用。改名后的應(yīng)用成功安裝后,在應(yīng)用列表中可以看到應(yīng)用的名稱已經(jīng)變?yōu)樯鲜龆x的“創(chuàng)建快捷方式”(見(jiàn)圖11)。
取我所需——提取APK資源文件
除了對(duì)APK資源進(jìn)行編譯外,我們還可以自由提取其中的有用資源?,F(xiàn)在很多Android電視盒都支持鼠標(biāo)的操作,但是Android默認(rèn)的鼠標(biāo)指針?lè)浅P?,這樣在大屏幕電視上使用鼠標(biāo)操作非常不便。這時(shí),可提取其他APK文件中的大鼠標(biāo)指針資源文件為我所用(操作的盒子同樣需要ROOT)。
鼠標(biāo)指針資源是“/system/famework/framework-res.apk”文件中的一張圖片文件,因此我們首先要找到一個(gè)包含大鼠標(biāo)指針的APK文件。比如英菲克系列盒子的鼠標(biāo)指針就較大,首先在任意英菲克盒子中提取上述“framework-res.apk”文件,將其復(fù)制到桌面后,同上使用7-ZIP打開(kāi),然后將“res/drawable-mdpi/ pointer_arrow.png”文件解壓到桌面?zhèn)溆茫ㄒ?jiàn)圖12)。
同上,在自己的盒子上安裝RE文件管理器,將“/system/famework/framework-res.apk”文件也復(fù)制到桌面?zhèn)溆?。使?-ZIP打開(kāi)后,按提示將上述解壓后的“pointer_arrow.png”文件拖到其中替換原文件。接著將修改過(guò)的“framework-res.apk”拷貝到“/system”下,然后使用RE管理器將其權(quán)限修改為“rw-r-r”(見(jiàn)圖13)。
完成權(quán)限的修改后將修改過(guò)的“framework-res.apk”復(fù)制到“/system/famework”替換同名文件,此時(shí)盒子會(huì)自動(dòng)重啟,重啟后再插上無(wú)線鼠標(biāo),現(xiàn)在就可以看到修改過(guò)的指針變大了許多(見(jiàn)圖14)。
跨越平臺(tái)——在其他平臺(tái)上運(yùn)行APK
由于APK文件默認(rèn)只能運(yùn)行在ARM架構(gòu)(包括ARM和專為ARM架構(gòu)適配的英特爾CPU)的設(shè)備上,但在日常操作中,我們可能希望在其他平臺(tái)上運(yùn)行APK文件。對(duì)于有這些需求的朋友,可借助虛擬機(jī)來(lái)實(shí)現(xiàn)。
之前雜志已經(jīng)多次介紹過(guò)通過(guò)安裝Android虛擬機(jī)運(yùn)行APK文件,這里再為大家推薦一款綠色版Android虛擬機(jī)(下載地址:http://www.qqtn.com/down/50016.html)。下載解壓后直接運(yùn)行其中的“Emulator.exe”即可啟動(dòng)虛擬機(jī),選擇“平板電腦模式”之后就可以開(kāi)始使用虛擬機(jī)了(見(jiàn)圖15)。
如果需要安裝APK游戲,點(diǎn)擊程序界面的“安裝軟件”,接著在打開(kāi)的頁(yè)面中下載需要安裝的APK游戲運(yùn)行即可(見(jiàn)圖16)。