安卓越來越統一化了。一些第三方ROM也是。
尤其是HTC的sense,不再追求那種大刀闊斧的大調整,去努力的掩蓋一些安卓原本的痕跡。而是只在一些必要的地方做出調整,當然,也保留有一些原有的sense的影子。比如虛擬按鍵的風格,索尼也是,虛擬按鍵一直都是自己的風格。
這種傾向于高度統一化的傾向最大的問題就是減小了差異性和個性化。這個是利弊共存的。
對于個性化特征越來越不明顯的最大體現之一就是狀態欄,現在安卓的狀態欄基本都取消了網標,中國移動之類的你是看不到了。
當然也有很多人追求個性化,除了要求文本之外,還想要加上一些圖片。比如把QQ頭像微信頭像之類的放在狀態欄,以追求統一個性化。
比如想我這樣,在狀態欄加一些文字或圖片。今天我就扯淡這么一篇給狀態欄加圖片的文章。
想想自己上次刷機后,狀態欄文本和圖片也都沒了,自己也要折騰,干脆寫一篇。
改運營商這個折騰的東西,早在塞班的時候就有了。
【看頂部中間的運營商】
把塞班這個運營商改成自定義動態圖片也是可以的,只是我沒留著截圖。。。
想想當初作死折騰手機,有點小懷念啊!
扯遠了,開始教程。
要求:手機已Root,最好有第三方Recovery,有備份,最好破解了Android核心簽名驗證。
首先,你需要用到三款軟件。
一個反編譯工具,一個可以解壓的文件管理器,一個文本編輯器。
其實,那個反編譯工具也有文件管理和文本編輯的功能,但缺少部分功能,比如解壓。
我這里用到的是Apktool,X-plore,Quoda這三款軟件。
另外,你還需要準備一張圖片,就是你要添加的圖片,尺寸任意,因為可以根據XML語法進行調節縮放之類的。
——————————————————————
這下面的內容和上一篇教程雷同,鑫君嗶嗶叨又講一遍。
Apktool說一下,這個軟件按處理架構分版本,軟件50M左右。安卓6.0的用6.1版本。安卓5.1及一下的建議用5.2版本。
首先,進文件管理器,進入SD card根目錄。選擇一個目錄,這個目錄不能有中文。建議新建一個。
我建立的是ITeyeshot。加個.是為了隱藏這個目錄,不讓圖庫識別。要不然圖庫里一大堆軟件素材圖。很亂的。
然后進根目錄,因為我用的這個文件管理器,是兩個窗口的,所以我用的左窗口,里的設置里的訪問改成超級用戶加掛載讀寫。
找到systemUI.apk,一般在system/priv-app里,安卓5.0及以上會再套用一個文件夾。
安卓4.3及以下在system/app里。
第三方ROM有些會加前綴,比如LGsystemUI.apk或是MIUIsystemUI.apk之類的。
復制到那個文件夾。
然后進apktool,找到那個文件夾,選擇apk。菜單里第二個第一個有個【反編譯】,就是它了。
對了,反編譯系統apk之前要導入系統框架,這個就是把system/framework里的apk都選擇【導入框架】,這里我就不說它了。
反編譯菜單里,選擇反編譯資源就行了,dex我們不改,不需要用到。
另外說下,這是apktool 6.1的界面,5.2的界面和這個有差異。具體的因為我是6.0,用6.1的apktool,5.2版本的apktool我現在沒有,暫時無法說明,不過類似就是了。
半分鐘左右,反編譯就完成了?注意,完成和成功是兩碼事,如果沒有成功,注意檢查框架是否導入完整,或是配置沒有配置好(5.2)。
因為有些ROM的systemUI做了特殊處理,可能無法反編譯或回編譯,我這里提前測試下。
長按反編譯生成的文件夾,選擇回編譯。
記住,中間的都不勾選,aapt選擇對應的安卓版本。
出現個Building apk file就是成功了。
也會生成一個編譯好的新的apk。這里我們沒做任何修改,只是用作測試,不需要用到它,刪掉。
————————————————————————
正式教程開始。
將剛才的圖片重命名為你想要的名字,但注意,只能小寫字母和數字和一些簡單的特殊符號。不能用大寫字母和中文。
重命名好之后,把它放進剛才編譯出來的文件夾的res/drawable目錄里,就像這樣。
然后,我們去處理狀態欄布局。
打開剛才反編譯生成的文件夾,依次打開res/layout,找到status_bar.xml。這個文件就是狀態欄的布局文件。
然后用文本編輯器打開!
這個文本說下,最好復制一份到另一個文件夾做備份。
上一篇有講到過位置的問題,這次就不講了,直接加在我上篇改的自定義文字的后面。加上
這樣的一段語法。
注意最左側這個行數標號,不要把一段多按個回車變成兩段。
ImageView是圖片視圖,android:gravity是對齊方式,指的是容器內控件相對于容器的位置,和android:layout_gravity有所區別。width和height分別是寬度和高度。
這里說明一下,因為我用的圖片的分辨率是136*136,如果我寬度選擇wrap_content的話,寬度就是自適應的,它就會變成大約45dip,就會太寬,雖然圖片本身不會非等比縮放,但會占用其余空白空間,所以寬度我直接賦值25.0dip,狀態欄本身的高度也是25.0dip。
android:src="@drawable/it_eyeshot"就是聲明這個圖片的引用地址。it_eyeshot就是你的圖片的名字,要和它一模一樣。
當然,也可以用其它屬性,比如android:background="@drawable/it_eyeshot",這個是背景屬性,也能用,不過默認是鋪滿容器,這個我就不扯了。后面可能會有文章講到!
然后我們回編譯。
改好之后,我們就回編譯。按照上面的方法來。
于是乎,我們得到了一個編譯好的新的apk文件。
對比一下原來的,發現少了一個文件夾,這個文件夾其實是apk的軟件簽名文件。
你可以把這個簽名文件復制過去(不能重新簽名,因為簽名密鑰不同),但不是很建議這么做。
一般都是把改動的文件復制到原apk里。我們這次只改動了一個status_bar.xml。我們就復制它。
【是他,是他,就是他………】
把它從生成的新apk復制到原apk里。
就這樣。
除了這個,還有一個圖片,原apk是沒有這個圖片的,所以我們把它從新apk里復制到原apk里。
除了這倆,其實,還有一個,雖然我們沒有去改動,但只要添加任何文件,圖片都會在編譯的時候自動改動它。
就是這個arsc文件,這個文件是所有資源文件的鏈接。由它關聯所有資源文件。整個value文件夾都是它,我們添加任何文件,都會在public.xml里賦值一個16進制的ID號。
按照剛才復制status_bar.xml和圖片的方法復制到原apk。這樣,原apk就變成了一個我們改好的可用的新apk。
然后把原apk復制到根目錄system文件夾里。
復制好以后,長按,改權限。
權限是755,這樣不能直接替換回去。
把它改成644,就像這樣。
然后把它復制到系統原本systemUI所在文件夾,替換掉原來的。
5.0以上是這個文件夾,4.4是system/priv-app,4.4以下是system/app。
替換好之后就是這樣子了。還沒生效,重啟下就是了。
這里說下這個重啟,如果ROM支持軟重啟就用軟重啟。一些ROM支持“重啟systemUI”,一些軟件也支持。
重啟好了,看下效果。
我們再看下添加圖片之前的。
我們再看下安卓原生的。
簡潔。。。
當然,如果你對布局語法熟悉的話,可以改更多東西的,比如時間居中,信號居左,雙層布局等等。
相對來說,4.4及以下版本,改動的比較自由,不會因為添加類而崩潰之類的。
順帶說下,改動任何system分區里的東西都有風險。需謹慎。記得常備份。
下面附上,我之前改過的兩個布局。
當然,我還改過別的。只是一些沒截圖。。。
最后,我在說下,上一篇【教程:給你的手機狀態欄添加自定義文字】有類似這樣的評論【閑著沒事干,給手機添加負擔】,【你知道嗎?小米直接就可以改】。這里我不予置評。
寫的算是詳細,不過這篇文章我有點偷懶里,一些復制了一些上一篇文章的內容,所以你可以看到很多不是很重要的部分,和上一篇內容幾乎一樣。其它有疑問可以加群99322260討論。
當然,如果是大神,他只需要一句ImageView語法就夠了。
這篇文章之后,后續會有其它類似的教程整理出來發文章。
好了,就說這么多。
本文結束,謝謝閱讀!
推薦閱讀:每日時訊網