Android 开发笔记1

Android开发笔记1

(2012-4-1815:32)

编译代码步骤:

一.无源代码目录时

1.登录编译服务器

进入命令行执行[email protected]

2.从GIT服务器上下载代码

1).curlhttp://192.168.1.29/repo/repo>repo//下载repo脚本

2).chmod+xrepo//修改repo的权限

3)../repoinit-uhttp://192.168.1.29/repo/hct-mtk/6513-v1.37/manifests.git///初始化repo

4)../reposync//同步MASTER分支到本地

3.开启release分支

./repostartrelease--all

4.下载release分支内容到本地

./repodownload`./repolist|awk-F:'{print$1}'`-m

5.拷贝项目分支到根目录

./distribute.sh-p****

6.修改版本号码

vimediatek/config/hct13_gb/ProjectConfig.mk

修改MTK_BUILD_VERNO=P90.r1

7.开始编译

/distribute.sh-mtknew

8.编译完成打包

./distribute.sh-b

9.拷贝编译好的包到制定目录

mv***../Public/distribute

二.存在有源代码目录时

1、./distri.sbuteh-mtkclean先清空编译过的中间代码

2、./repoforall-cgitclean-d-f清空未受管控代码

3、./repoforall-cgitcheckout-f同步本地代码跟服务器完全相同(去除本地所有修改)

4、./repostatus查看本地代码

5、./repolist|sed's/:.*//'|xargs./repodownload-m列出所有受管控的代码库并merge下载

6、./repostartreleasedists/设置到release目录

./repodownload--brdevelop-mdists/合入到realease分支

7、./distribute.sh-pprojectname把项目相关的目录覆盖到根目录下

8、vimediatek/config/hct13_gb/ProjectConfig.mk编辑版本号

9、./distribute.sh-mtk-o=TARGET_BUILD_VARIANT=usernew编译版本

1.壁纸

/mediatek/source/frameworks/banyan/res/res/drawable/lockscreen_default_wallpaper.png320X480可以自动拉伸,slidelockscreen的默认壁纸

/frameworks/base/core/res/res/drawable/default_wallpaper.jpg640X480,默认墙纸

/packages/apps/Launcher2/res/drawable-hdpi/wallpapers.xml墙纸列表

/frameworks/base/core/res/res/values/config.xml<stringname="default_wallpaper_component">@null</string>修改为:<stringname="default_wallpaper_component">动态墙纸包名/.动态墙纸类名</string>,动态墙纸

/packages/apps/Launcher2/res/xml/default_workspace.xml预置桌面项目

/frameworks/base/media/java/android/media/AudioManager.javaDEFAULT_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=newMediaPlayer();

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\路径下,添加如下语句:

MediaTekConfidential

©2007MediaTekInc.

Theinformationcontainedinthisdocumentcanbemodifiedwithoutnotice

Page:20of75

FAQ

$(LOCAL_PATH)/newwavelabs/bootanimation.mp3:system/media/bootanimation.mp3

再次build工程即可。

bootanimation.zip的制作方法举例如下:

分别创建名为“part0”和“part1”的文件夹以及一个名为“desc.txt”文件。“part0”

中存储动画的第一阶段的资源图片,“part1”存储第二阶段的资源图片,注意图片为

png格式。

播放控制由“desc.txt”指定,内容如下:

32048030

p10part0

p00part1

各参数功能如下:

32048030

宽高帧数

p

1

0

part0

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

p

00

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,添加以下代码:

finalWindowwin=getWindow();

win.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);//removestatusbar

requestWindowFeature(Window.FEATURE_NO_TITLE);

requestWindowFeature(Window.FEATURE_PROGRESS);//removetitlebar

注意:必须添加在setContentView()方法之前,否则将提示错误。

如何拦截来电,即在电话ring之前就有机会检查来电号码?

packages\apps\Phone\src\com\android\phone\CallNotifier.javaonNewRingingConnection

根据需要从Connectionc=(Connection)r.result;中来电连接中分析来电数据,从而判定是否要拦截。

何拦截短信?即新短信来时,能否在提示给用户之前检查短信来源和内容。

可以在SmsReceiverService.java的insertMessage方法里拦截。短信的来源和内容都可以通过classSmsMessage提供的方法获取。

如可以通过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

#defineRTC_DEFAULT_YEA

#defineRTC_DEFAULT_MTH

#defineRTC_DEFAULT_DOM

1.修改文件alps\frameworks\base\packages\SettingsProvider\res\values\defaults.xml

增加代码<stringname="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值改掉,注意此处有引号。

#defineBTMTK_ANDROID_DEFAULT_LOCAL_NAME"ANDROIDBT"

相关推荐