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
宽 高 帧数
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"

更多相关文章

  1. Android控制手电筒代码,简单易用,不需要任何权限
  2. Android文件访问权限问题
  3. 创建android逐帧动画的两种方式 布局和java代码
  4. Android jni调用第三方so库和.h文件
  5. android studio的Gradle一直在sync的办法,不停的下载各种文件
  6. Android Java和JavaScript代码相互调用
  7. android 音频系统java部分代码阅读
  8. Android 最终image文件的来源

随机推荐

  1. android底部弹窗的几种实现方式
  2. android Log4j学习笔记
  3. Your project contains error(s)... 新创
  4. Android(安卓)ContentProvider 和 SQLite
  5. [置顶] ANDROID 返回,菜单和HOME键的监听
  6. 2011年01月12日整理自身java的知识体系
  7. [置顶] 我的Android进阶之旅------>启动A
  8. 判断一个activity初始化是否完毕的方法
  9. Android中的两把锁
  10. Android(安卓)Webview 基于chromedriver