本文共 6413 字,大约阅读时间需要 21 分钟。
编译代码步骤: 一.无源代码目录时 1.登录编译服务器 进入命令行执行 ssh
2.从GIT服务器上下载代码 1). curl >repo //下载repo脚本 2). chmod +x repo //修改repo的权限 3). ./repo init -u //初始化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"
本文来自:我爱研发网(52RD.com) - R&D大本营 详细出处:
转载地址:http://hpwxi.baihongyu.com/