(2012-4-18 15:32)
編譯代碼步驟:
一.無源代碼目錄時
1.登錄編譯服務器
進入命令行執行 ssh [email protected]
2.從GIT服務器上下載代碼
1). curl http://192.168.1.29/repo/repo >repo //下載repo腳本
2). chmod +x repo //修改repo的權限
3). ./repo init -u http://192.168.1.29/repo/hct-mtk/6513-v1.37/manifests.git/ //初始化repo
4). ./repo sync //同步MASTER分支到本地
3.開啓release分支
./repo start release --all
4. 下載release分支內容到本地
./repo download `./repo list | awk -F: '{print $1}'` -m
5. 拷貝項目分支到根目錄
./distribute.sh -p ****
6. 修改版本號碼
vi mediatek/config/hct13_gb/ProjectConfig.mk
修改MTK_BUILD_VERNO = P90.r1
7. 開始編譯
/distribute.sh -mtk new
8.編譯完成打包
./distribute.sh -b
9.拷貝編譯好的包到制定目錄
mv *** ../Public/distribute
二.存在有源代碼目錄時
1、./distri.sbuteh -mtk clean 先清空編譯過的中間代碼
2、./repo forall -c git clean -d -f 清空未受管控代碼
3、./repo forall -c git checkout -f 同步本地代碼跟服務器完全相同(去除本地所有修改)
4、./repo status 查看本地代碼
5、./repo list | sed 's/:.*//' | xargs ./repo download -m 列出所有受管控的代碼庫並merge下載
6、 ./repo start release dists/ 設置到release目錄
./repo download --br develop -m dists/ 合入到realease 分支
7、./distribute.sh -p projectname 把項目相關的目錄覆蓋到根目錄下
8、vi mediatek/config/hct13_gb/ProjectConfig.mk 編輯版本號
9、./distribute.sh -mtk -o=TARGET_BUILD_VARIANT=user new 編譯版本
1.壁紙
/mediatek/source/frameworks/banyan/res/res/drawable/lockscreen_default_wallpaper.png 320X480 可以自動拉伸,slide lock screen 的默認壁紙
/frameworks/base/core/res/res/drawable/default_wallpaper.jpg 640X480 ,默認牆紙
/packages/apps/Launcher2/res/drawable-hdpi/wallpapers.xml 牆紙列表
/frameworks/base/core/res/res/values/config.xml <string name="default_wallpaper_component">@null</string> 修改爲:<string name="default_wallpaper_component">動態牆紙包名/.動態牆紙類名</string> , 動態牆紙
/packages/apps/Launcher2/res/xml/default_workspace.xml 預置桌面項目
/frameworks/base/media/java/android/media/AudioManager.java DEFAULT_STREAM_VOLUME 默認的音量和來電鈴聲
修改 build\target\product\下的 core.mk 文件,添加 ro.config.ringtone=對應鈴聲文件名 即可
/frameworks/base/data/sounds/Android.mk 鈴聲列表
/frameworks/base/core/res/assets/images/android-logo-mask.png 開機logo
這個動畫是由兩個圖片通過 openGL 疊加出來的,文件分別爲:
/frameworks/base/core/res/assets/images/android-logo-mask.png
Android 默認的前景圖片,文字部分鏤空,大小 256×64
/frameworks/base/core/res/assets/images/android-logo-shine.png
Android 默認的背景圖片,有動感效果,大小 512×64
只要把 android-logo-mask.png 替換成想要的 png 圖片就可以了。
實現開機鈴聲:
可以在 BootAnimation.cpp 文件的 BootAnimation::android() 中實現
在這個函數的最開始部分加入
sp<MediaPlayer> mp = new MediaPlayer();
mp->setDataSource("/system/media/audio/notifications/TaDa.ogg", NULL);
mp->prepare();
mp->start();
這裏的音樂文件路徑可以自己更改(注意這時候 sdcard 還沒有掛上來,不要用 sdcard 中的
音樂文件)。
然後在這個函數的結束再加上
mp->stop();
mp->disconnect();
mp->setListener(NULL);
mp = NULL;
更換開機鈴聲:
先將要設置爲鈴聲的音樂文件更名爲 bootanimation.mp3,注意需要爲 mp3 文件方能生效。
將該文件放入工程的資源目錄下 frameworks\base\data\sounds\newwavelabs,修改
Android.mk 文件,將該文件打到 data\local\路徑下,添加如下語句:
$(LOCAL_PATH)/newwavelabs/bootanimation.mp3:data/local/bootanimation.mp3
再次 build 工程即可
恢復出廠設置過後,開機動畫和開機鈴聲爲設置後的,非 Google 默認的開機動畫和鈴聲
將該文件放入工程的資源目錄下,如 frameworks\base\data\sounds\newwavelabs,修
改 Android.mk 文件,將該文件打到 system\media\路徑下,添加如下語句:
MediaTek Confidential
© 2007 MediaTek Inc.
The information contained in this document can be modified without notice
Page: 20 of 75
FAQ
$(LOCAL_PATH)/newwavelabs/bootanimation.mp3:system/media/bootanimation.mp3
再次 build 工程即可。
bootanimation.zip 的製作方法舉例如下:
分別創建名爲“part0”和“part1”的文件夾以及一個名爲“desc.txt”文件。“part0”
中存儲動畫的第一階段的資源圖片,“part1”存儲第二階段的資源圖片,注意圖片爲
png 格式。
播放控制由“desc.txt”指定,內容如下:
320 480 30
p 1 0 part0
p 0 0 part1
各參數功能如下:
320 480 30
寬 高 幀數
p
1
0
part0
標誌符 循環次數 階段切換間隔時間 對應目錄名
p
0
0
part1
標誌符 循環次數 階段切換間隔時間 對應目錄名
最後,將這三個組件通過存儲壓縮的方式壓縮爲 bootanimation.zip 文件即製作完成。
預製開機動畫的過程如下:
將 制 作 完 成 的 bootanimation.zip 文 件 放 在 工 程 的 資 源 目 錄 下 , 如
frameworks\base\data\sounds 目錄下,修改 Android.mk 文件,通過以下語句將該壓縮
包打到 system\medial\路徑下:
$(LOCAL_PATH)/bootanimation.zip:system/media/bootanimation.zip
再次 build 工程即可。
如何獲取當前的情景模式 和設置不同的情景模式?
首 先 通 過 getSystemService(Context.AUDIO_SERVICE) 獲 取 AudioManager 的 實 例 audioManager 。然後調用set/get方法
鈴聲和震動:
audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
AudioManager.VIBRATE_SETTING_ON);
audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,
AudioManager.VIBRATE_SETTING_ON);
鈴聲:
audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
AudioManager.VIBRATE_SETTING_OFF);
audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,
AudioManager.VIBRATE_SETTING_OFF);
Cen
震動:
audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
AudioManager.VIBRATE_SETTING_ON);
audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,
AudioManager.VIBRATE_SETTING_ON);
靜音:
audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
AudioManager.VIBRATE_SETTING_OFF);
audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,
AudioManager.VIBRATE_SETTING_OFF);
在一個Activity去除Statusbar和Titlebar
修改對應的 Activity,添加以下代碼:
final Window win = getWindow();
win.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);//remove statusbar
requestWindowFeature(Window.FEATURE_NO_TITLE);
requestWindowFeature(Window.FEATURE_PROGRESS);//remove titlebar
注意:必須添加在 setContentView()方法之前,否則將提示錯誤。
如何攔截來電,即在電話 ring 之前就有機會檢查來電號碼?
packages\apps\Phone\src\com\android\phone\CallNotifier.java onNewRingingConnection
根據需要從Connection c = (Connection) r.result; 中來電連接中分析來電數據,從而判定是否要攔截。
何攔截短信? 即新短信來時,能否在提示給用戶之前檢查短信來源和內容。
可以在 SmsReceiverService.java 的 insertMessage 方法裏攔截。短信的來源和內容都可以通過 class SmsMessage 提供的方法獲取。
如可以通過 getOriginatingAddress 方法獲取,內容則可以通過 getMessageBody 方法獲取。如果滿足攔截的條件,就不做 storeMessage 的動作。
修改默認時間:
\alps\mtk\src\custom\[project]\preloader\custom\custom\inc\cust_rtc.h
\alps\mtk\src\custom\[project]\kernel\rtc\rtc\rtc-mt6516.h
#define RTC_DEFAULT_YEA
#define RTC_DEFAULT_MTH
#define RTC_DEFAULT_DOM
1. 修改文件 alps\frameworks\base\packages\SettingsProvider\res\values\defaults.xml
增加代碼<string name="time_12_24" translatable="false">24</string>
紅色標記表示 24 小時制,也可以改爲 12(12 小時制)
2. 修改文件
alps\frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\Databas
eHelper.java
找到函數 loadSystemSettings (),在函數中增加以下語句:
loadStringSetting(stmt, Settings.System.TIME_12_24, R.string.time_12_24);
修改藍牙設備的默認名稱
修改 frameworks\base\core\jni\Android_bluetooth_common.h
將 BTMTK_ANDROID_DEFAULT_LOCAL_NAME 值改掉,注意此處有引號。
#define BTMTK_ANDROID_DEFAULT_LOCAL_NAME "ANDROID BT"