启动屏幕定制
在启动时,Android会显示启动画面图像,同时启动该设备。如果你想修改默认的启动画面,如下操作:
1. 创建一个320x480的图像,在这个例子中用splashscreen.jpg。.
2. 使用ImageMagick,转换您的.jpg文件通过.r格式:
convert screen.jpg screen.r
3. 用 rgb2565 应用程序转换至 565 格式:
rgb2565 < screen.rgb > screen.565
4. 使用fastboot将图片写至闪存:
fastboot flash splash1 screen.565
网络定制平台
网络配置
在Build时, Android网络配置存储为一个被编译成二进制的形式资源。这一XML资源的表示位于//android/frameworks/base/core/res/res/xml/apns.xml. 此文件不包含任何配置APNs。你不应该修改这个文件,而是通过配置Build-time APNs(见Build-time APN的配置如下)。
每个网络配置存储在一个XML元素的语法如下:
<apn carrier="T-Mobile US"
mcc="310"
mnc="260"
apn=" wap.voicestream.com"
user="none"
server="*"
password="none"
proxy=" 216.155.165.50"
port="8080"
mmsc="http://216.155.174.84/servlets/mms"
/>
Build-time APN的配置
要设置一个特定的产品目标的APN的配置,添加一个apns - conf.xml对产品的配置文件(不要修改默认的平台APNs)。这允许多个产品,有不同APNs,构建了相同的代码基础。
要配置在产品层面APNs,添加一行如下面的例子中的产品配置文件(vendor/<vendor_name>/products/myphone-us.mk
):
PRODUCT_COPY_FILES := vendor/acme/etc/apns-conf-us.xml:system/etc/apns-conf.xml
APN的run time配置
在运行时, Android读取下列文件APNs:
system/etc/apns-conf.xml
And Android的支持下运行时的网络配置方法, 可选择适当的APN配置:
•Automatic Configuration:在启动时,Android 确定正确的网络配置上的MCC和MNC从SIM卡为基础,并自动配置所有的网络设置。
•Manual Configuration:该平台还将支持运行时按名称(用户)的网络设置手动选择,例如,“Company Name US”,并支持手动网络配置项。
•WAP / SMS Push Configuration:网络配置是标准的Android资源。在运行时,您可以安装一个新的系统资源APK包升级。这将有可能开发一个网络配置服务,监听一个特定的二进制短信的二进制短信包含网络配置信息的端口。注意:执行将依赖于网络运营商可能因不符短信端口,二进制短信格式等
自定义预加载的应用程序
若要自定义为一个特定产品(applications, input methods, providers, services, etc.), 在产品配置设置PRODUCT_PACKAGES property,如下图所示的Android packages列表:
PRODUCT_PACKAGES := /
<company_name>Mail /
<company_name>IM /
<company_name>HomeScreen /
<company_name>Maps /
<company_name>SystemUpdater
Package的名称应为每个包对应的 build目标规定的LOCAL_PACKAGE_NAME。例如,Android.mk建立<company_name>邮件引用上述目标,看起来是这样的:
# Build the <company_name>Mail application
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := user development
LOCAL_SRC_FILES := $(call all-java-files-under,src,tests)
LOCAL_STATIC_JAVA_LIBRARIES := <company_name>login-client
# Specify the package name
LOCAL_PACKAGE_NAME := <company_name>Mail
# Specify the certificate used to sign the application
LOCAL_CERTIFICATE := vendor/<company_name>/certs/app
include $(BUILD_PACKAGE)
# Build the login client static library
include $(LOCAL_PATH)/client/Android.mk
请注意,主屏幕只是一个Android应用程序,可以完全取代或更改源代码和应用程序资源(Java源代码,布局等)定制。
自定义浏览器的书签
浏览器的书签是储存在浏览器应用程序的字符串资源://android/packages/apps/Browser/res/values/strings.xml. 包。书签被定义为简单值的字符串数组称为“书签”。每个书签条目存储为一个数组值对,第一个代表书签名称,第二个书签的网址。例如:
<!-- Bookmarks -->
<string-array name="bookmarks">
<item>Google</item>
<item>http://www.google.com/</item>
<item>Yahoo!</item>
<item>http://www.yahoo.com/</item>
<item>MSN</item>
<item>http://www.msn.com/</item>
<item>MySpace</item>
<item>http://www.myspace.com/</item>
<item>Facebook</item>
<item>http://www.facebook.com/</item>
<item>Wikipedia</item>
<item>http://www.wikipedia.org/</item>
<item>eBay</item>
<item>http://www.ebay.com/</item>
<item>CNN</item>
<item>http://www.cnn.com/</item>
<item>New York Times</item>
<item>http://www.nytimes.com/</item>
<item>ESPN</item>
<item>http://espn.go.com/</item>
<item>Amazon</item>
<item>http://www.amazon.com/</item>
<item>Weather Channel</item>
<item>http://www.weather.com/</item>
<item>BBC</item>
<item>http://www.bbc.co.uk/</item>
</string-array>
如Android应用资源,该平台将在平台上加载配置值的备用资源。见资源与国际化的Android SDK的细节。要配置一个特定的移动网络运营商的书签,放置在一个单独的您的自定义书签文件strings.xml, 并把它放在下一个移动网络代码(MNO)的特定的资源文件夹。例如,Browser/res/values-mccXXX-mncYYY/strings.xml , 其中XXX和YYY代表三位MCC和2至3位数字MNC值。
Android加载为默认值覆盖值任何配置特定资源,所以只需要包括书签字符串数组在此文件中的值。
电子邮件服务提供商定制
默认的电子邮件服务提供商设置存储为在电子邮件应用程序(//android/packages/apps/Email/res/xml/providers.xml),如下图所示。
<providers>>
<!-- Gmail variants -->
<provider id="gmail" label="Gmail" domain="gmail.com">
<incoming uri="imap+ssl+://imap.gmail.com" username="$email"/>
<outgoing uri="smtp+ssl+://smtp.gmail.com" username="$email"/>
</provider>
<provider id="googlemail" label="Google Mail" domain="googlemail.com">
<incoming uri="imap+ssl+://imap.googlemail.com" username="$email"/>
<outgoing uri="smtp+ssl+://smtp.googlemail.com" username="$email"/>
</provider>
<provider id="google" label="Google" domain="google.com">
<incoming uri="imap+ssl+://imap.gmail.com" username="$email"/>
<outgoing uri="smtp+ssl+://smtp.gmail.com" username="$email"/>
</provider>
<provider id="android" label="Android" domain="android.com">
<incoming uri="imap+ssl+://imap.gmail.com" username="$email"/>
<outgoing uri="smtp+ssl+://smtp.gmail.com" username="$email"/>
</provider>
<!-- Common US providers -->
<provider id="aim" label="AIM" domain="aim.com">
<incoming uri="imap://imap.aim.com" label="IMAP" username="$email"/>
<outgoing uri="smtp://smtp.aim.com:587" username="$email"/>
</provider>
<provider id="aol" label="AOL" domain="aol.com">
<incoming uri="imap://imap.aol.com" label="IMAP" username="$email"/>
<outgoing uri="smtp://smtp.aol.com:587" username="$email"/>
</provider>
<provider id="comcast" label="Comcast" domain="comcast.net">
<incoming uri="pop3+ssl+://mail.comcast.net" username="$user"/>
<outgoing uri="smtp+ssl+://smtp.comcast.net" username="$user"/>
</provider>
<provider id="compuserve" label="CompuServe" domain="cs.com">
<incoming uri="imap://imap.cs.com" username="$user"/>
<outgoing uri="smtp://smtp.cs.com" username="$user"/>
</provider>
<provider id="dotmac" label=".Mac" domain="mac.com">
<incoming uri="imap+tls://mail.mac.com" username="$email"/>
<outgoing uri="smtp+tls://smtp.mac.com" username="$email"/>
</provider>
<provider id="earthlink" label="Earthlink" domain="earthlink.net">
<incoming uri="pop3://pop.earthlink.net" username="$email"/>
<outgoing uri="smtp://smtpauth.earthlink.net:587" username="$email"/>
</provider>
<provider id="juno" label="Juno" domain="juno.com">
<incoming uri="pop3://pop.juno.com" username="$user"/>
<outgoing uri="smtp://smtp.juno.com" username="$user"/>
</provider>
<provider id="live" label="Windows Live Hotmail Plus" domain="live.com" note="@string/provider_note_live">
<incoming uri="pop3+ssl+://pop3.live.com" username="$email"/>
<outgoing uri="smtp+tls+://smtp.live.com" username="$email"/>
</provider>
<provider id="hotmail" label="Windows Live Hotmail Plus" domain="hotmail.com" note="@string/provider_note_live">
<incoming uri="pop3+ssl+://pop3.live.com" username="$email"/>
<outgoing uri="smtp+tls+://smtp.live.com" username="$email"/>
</provider>
<provider id="msn" label="Windows Live Hotmail Plus" domain="msn.com" note="@string/provider_note_live">
<incoming uri="pop3+ssl+://pop3.live.com" username="$email"/>
<outgoing uri="smtp+tls+://smtp.live.com" username="$email"/>
</provider>
<provider id="mobileme" label="MobileMe" domain="me.com">
<incoming uri="imap+tls://mail.me.com" username="$email"/>
<outgoing uri="smtp+tls://smtp.me.com" username="$email"/>
</provider>
<provider id="netzero" label="NetZero" domain="netzero.com">
<incoming uri="pop3://pop.netzero.com" username="$user"/>
<outgoing uri="smtp://smtp.netzero.com" username="$user"/>
</provider>
<provider id="sbcglobal" label="SBC Global" domain="sbcglobal.net">
<incoming uri="pop3://pop.sbcglobal.yahoo.com" username="$email"/>
<outgoing uri="smtp://smtp.sbcglobal.yahoo.com" username="$email"/>
</provider>
<provider id="verizon" label="Verizon" domain="verizon.net">
<incoming uri="pop3://incoming.verizon.net" username="$user"/>
<outgoing uri="smtp://outgoing.verizon.net" username="$user"/>
</provider>
<provider id="yahoo" label="Yahoo Plus" domain="yahoo.com" note="@string/provider_note_yahoo">
<incoming uri="pop3+ssl+://plus.pop.mail.yahoo.com" username="$user"/>
<outgoing uri="smtp+ssl+://plus.smtp.mail.yahoo.com" username="$user"/>
</provider>
<!-- Common UK providers -->
<provider id="aol-uk" label="AOL" domain="aol.co.uk">
<incoming uri="imap+ssl+://imap.uk.aol.com" label="IMAP" username="$user"/>
<outgoing uri="smtp+ssl+://smtp.uk.aol.com" username="$user"/>
</provider>
<provider id="bt" label="BT Internet" domain="btinternet.com">
<incoming uri="pop3://mail.btinternet.com" username="$email"/>
<outgoing uri="smtp://mail.btinternet.com" username=""/>
</provider>
<provider id="tiscali" label="Tiscali" domain="tiscali.co.uk">
<incoming uri="pop3://pop.tiscali.co.uk" username="$email"/>
<outgoing uri="smtp://smtp.tiscali.co.uk" username="$email:wq"/>
</provider>
<provider id="yahoo-uk" label="Yahoo" domain="yahoo.co.uk" note="@string/provider_note_yahoo_uk">
<incoming uri="pop3+ssl+://pop.mail.yahoo.co.uk" username="$user"/>
<outgoing uri="smtp+ssl+://smtp.mail.yahoo.co.uk" username="$user"/>
</provider>
<!-- Common Germany providers -->
<provider id="freenet" label="Freenet" domain="freenet.de">
<incoming uri="pop3://mx.freenet.de" username="$user"/>
<outgoing uri="smtp+ssl://mx.freenet.de" username="$email"/>
</provider>
<provider id="gmx" label="GMX" domain="gmx.de">
<incoming uri="pop3+tls://pop.gmx.net" username="$email"/>
<outgoing uri="smtp+tls://mail.gmx.net" username="$email"/>
</provider>
<provider id="T-Online" label="T-Online" domain="t-online.de" note="@string/provider_note_t_online">
<incoming uri="pop3://popmail.t-online.de" username="$email"/>
<outgoing uri="smtp://smtpmail.t-online.de" username="$email"/>
</provider>
<provider id="web.de" label="Web.de" domain="web.de">
<incoming uri="pop3+tls://pop3.web.de" username="$user"/>
<outgoing uri="smtp+tls://smtp.web.de" username="$user"/>
</provider>
</providers>
正如所有的Android应用程序资源,该平台将在平台上加载配置值的备用资源。见<资源与国际化>的Android SDK的细节。要配置一个特定的移动网络运营商,放置在一个单独的providers.xml定制的电子邮件提供商提供的文件,并把它下一个移动网络代码(MNO)的特定的资源文件夹。例如,Email/res/xml-mccXXX-mncYYY/providers.xml 其中XXX和YYY代表三位MCC和2至3位digit MNC 值。
平台的主题
主题和风格
系统级的样式定义在//android/framework/base/core/res/res/values/styles.xml.
动画
Android的支持窗口并查看配置动画过渡。系统级动画定义在全局资源文件//android/framework/base/core/res/res/anim//
.