`

Android 开发笔记1

 
阅读更多
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"
分享到:
评论

相关推荐

    android开发笔记1

    "android开发笔记1"主要针对6410开发板,提供了移植Android 2.1系统的详尽步骤,是Android初学者理想的自学资源。下面将根据提供的标签和文件名称,深入讲解相关知识点。 1. Android开发环境搭建:在开始Android...

    Android开发笔记全集

    《Android开发笔记全集》是一份综合性的学习资源,涵盖了Android应用开发的多个核心领域,旨在帮助开发者系统地掌握Android平台的开发技能。这个压缩包包含的文件名为“Android开发笔记”,暗示着它可能是一个系列的...

    最新最全的Android开发笔记

    这份"最新最全的Android开发笔记"涵盖了Android应用开发的各个方面,旨在帮助开发者提升技能,跟上快速发展的Android生态系统。 笔记首先介绍了Android开发的基础,包括安装Android Studio,这个强大的集成开发环境...

    android 开发笔记

    "Android开发笔记"是由real6410公司为开发者提供的一份宝贵的资源,特别针对real6410开发板进行优化,旨在帮助开发者快速提升Android应用开发技能。这份资料包含了从基础知识到实战经验的全方位指导。 首先,"read ...

    android开发笔记.pdf

    Android 开发笔记 Android 开发笔记中涵盖了多个重要的知识点,以下是对标题、描述、标签和部分内容的详细解释: 标题: Android 开发笔记.pdf 描述: Android 开发笔记.pdf 标签: 技术及资料 知识点: 1. 广播...

    正确使用Android性能分析工具——TraceView _ bxbxbai_Android开发笔记1

    在 Android 开发中,性能优化是提升用户体验的关键环节之一。TraceView 是 Android 提供的一款强大的性能分析工具,它可以帮助开发者定位应用程序中的性能瓶颈,尤其是在 UI 渲染和 CPU 使用率方面。本文将详细介绍...

    全网最全Android开发笔记.zip

    【Android开发笔记】是一部全面覆盖Android开发核心技术与实践的综合资料,旨在帮助开发者从零基础到精通,深入了解Android系统的工作原理以及应用开发的各种技巧。笔记包含了大量的实例代码、技术解析和实战经验,...

    Android驱动开发笔记

    ### Android驱动开发笔记概览 #### 1. JDK环境配置 在Android驱动开发过程中,通常需要一个良好的开发环境来支持项目的进行。文档中的片段显示了如何设置JDK(Java Development Kit)环境变量。这部分内容涉及到的...

    android开发笔记2

    这份“android开发笔记2”显然旨在帮助开发者提升在该平台上的编程技能。以下将分别就标题、描述以及标签中的关键点进行详细解释,并结合压缩包内的文件内容展开讨论。 标题“android开发笔记2”表明这是一系列笔记...

    android开发笔记4

    "Android开发笔记4"专注于在Real6410开发板上的应用开发,旨在帮助开发者快速提升在Android平台上的技术水平。Real6410是一款常见的嵌入式硬件平台,常用于Android系统的移植和定制,具有良好的性能和稳定性,对于...

    Android开发教程+笔记 Android开发教程+笔记

    Android开发教程+笔记 Android开发教程+笔记 Android开发教程+笔记 Android开发教程+笔记 Android开发教程+笔记 Android开发教程+笔记 Android开发教程+笔记 Android开发教程+笔记 Android开发教程+笔记 Android开发...

    android开发笔记总结

    ### Android开发笔记总结 #### 学习基础 在深入探讨Android开发之前,我们先回顾一下基础知识,这是构建高质量Android应用程序的基石。 - **Java基础知识**:Android应用开发主要基于Java语言,因此熟悉Java是...

    android开发笔记3

    在“android开发笔记3”中,我们可以深入学习到Android应用程序开发的关键步骤,特别是针对6410开发板的系统移植过程。这篇笔记是为初学者量身定制的,旨在帮助他们快速掌握Android开发的核心技能。 首先,我们关注...

    android开发笔记5

    "Android开发笔记5"专注于Real6410开发板的使用,旨在帮助开发者快速提升Android技术能力。本文将深入解析笔记中的关键知识点,包括Android的基础UI编程。 首先,让我们关注"read me.doc"。这个文档通常包含了项目...

    [电子书][Android]Android开发教程笔记完全版.zip

    【Android开发教程笔记完全版】是一份全面的Android开发学习资料,旨在帮助新手小白和有一定经验的程序员深入理解和掌握Android应用开发技术。这份资源包含了从基础到进阶的多个层次的知识点,对于想要踏入Android...

    Android开发教程笔记完全版 pdf

    这份"Android开发教程笔记完全版"涵盖了Android开发的基础到高级主题,旨在帮助开发者全面理解并掌握Android应用的构建过程。 一、Android系统概述 Android是由Google主导的开源操作系统,基于Linux内核。它的开放...

    android开发笔记6

    在“android开发笔记6”中,我们可以聚焦于Android平台的开发知识,特别是针对Real6410开发板的实践应用。这个笔记集旨在帮助开发者快速提升Android技术能力,包括理解和运用关键概念、工具以及最佳实践。 首先,让...

Global site tag (gtag.js) - Google Analytics