Android 开发笔记


Android 开发笔记1 
(2012-4-18 15:32) 
编译代码步骤: 
一.无源代码目录时 
1.登录编译服务器 
  进入命令行执行 ssh release@192.168.1.30 
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 
宽 高 帧数 



part0 
标志符 循环次数 阶段切换间隔时间 对应目录名 



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"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值