日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

论初次修改 Android framework 代码

發布時間:2025/4/16 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 论初次修改 Android framework 代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊打開鏈接

論初次修改 Android framework 代碼

背景

公司產品需求,需要修改系統 framework 層的部分界面顯示,包括聲音調節、亮度調節、長按電源關機等。

準備

我并不是白手起步,有負責硬件的同學幫我搭建編譯環境、vim 編輯環境(一些輔助插件)。由于 Android 源碼結構太過復雜,不建議強記,但是它的層次還是要大概清楚,比如 framework層 -> base -> core,policy,package,大部分的需求,在這三個包里面進行代碼的修改即可。

Note:以下所有操作均在 Ubtuntu 14.04 LTS 系統上完成。

修改音量調節

  • 開始:代碼定位
    對于不熟悉 android 源碼的同學,比如我,選擇的入手點很重要,首先是代碼、界面的定位,找到需要修改的類和布局文件,這需要一點點耐心。先來看看原生的界面顯示:
  • 這是我用三星s6調節音量的界面,僅供參考。

    看看這張圖片有什么亮點,咳咳,是特點,細心的同學的已經發現了,界面上有一個文本:鈴聲(不同的設備(手機)、不同的場景顯示的文本不一樣,也有不顯示文本的奇葩系統,不管是哪種情況,最多只是增加了定位的難度而已,其實 android 源碼的結構不會發生太大的變化)。文本有時候顯示的是:音量、聲音、媒體,不幸的是,公司的設備不顯示任何文本文字。

    首先進入到 android -> framework -> base 目錄下,下文不做特殊說明,都是在此目錄下,執行以下命令:

    grep "鈴聲" -r *

    該命令是在當前目錄及子目錄中,尋找所有使用“鈴聲”的文件,大致結果如下(僅供參考):

    很容易就看出,這些文本文字都定義在 strings.xml 資源文件中,然后我們根據任意資源名稱再次搜索,這里我們就選擇第一個,命令如下:

    grep "volume_ringtone" -r *

    結果如下:

    偶偶,結果好多,我只截取了部分,不過也能看出搜索答案了,搜索結果還是在 string.xml 文件中,沒有 Java 文件,沒有布局文件,這表示我們的搜索結果是不對的(沮喪臉)。Why? 因為設備不是顯示“鈴聲”,用它進行搜索當然無結果咯,就像女朋友想買一個包包,你卻給她買了臺電腦一樣。

    這個時候你就需要不斷的用不同的關鍵詞搜索,用甜言蜜語去哄女盆友。我用了:聲音、音量、語音等,功夫不負有心人,終于讓我試出來了。搜索“語音”,結果如下:

    用上圖紅框中的 serviceClassVoice 進行搜索,結果如下:

    終于不再是清一色的 strings.xml 文件了,這一步基本算是完成了。最后仔細看了看,居然搜索“音聲”也能搜索出來,wtf!

    Note:在沒有文本提示的情況下,只能大概的推測出中文文本,或者翻譯成英文進行搜索,這不能缺乏耐心哦~~

  • 定位 java 文件
  • 根據第一步找到的 volume_adjust_item.xml 文件,進一步定位 java 文件,命令如下:

    grep volume_adjust_item -r *

    結果如下圖所示:

    很容易就找到了 VolumePanel.java 文件,這就是調節音量的核心代碼文件,至于怎么蹂躪它,就看你的本事了。

    總結

    學到了很多命令,以及 Vim 編輯器的使用,以及編譯推送命令。比如 /查找、hjkl方向鍵、n和shift+n、adb push、adb pull、stop、start等。

    以調節音量為例子,以此類推,調節亮度,調節關機界面等,都是差不多的步驟。


    總結

    以上是生活随笔為你收集整理的论初次修改 Android framework 代码的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。