At startup, Android displays a splashscreen image while booting the device. Do the following if you wish to modify the default splash screen:
splashscreen.jpg
in this example.convert screen.jpg screen.r
rgb2565 < screen.rgb > screen.565
fastboot flash splash1 screen.565
Android stores network configurations as a resource that gets compiled into binary at form at build time. The XML representation of this resource is located at //android/frameworks/base/core/res/res/xml/apns.xml
. This file does not include any configured APNs. You should not modify this file, but instead configure APNs by product at build time (see Build-time APN Configuration below).
Each network configuration is stored in an XML element following this syntax:
<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" />
To set the APN configuration for a particular product target, add an apns-conf.xml
file to the product configuration (do not modify the default platform APNs). This allows multiple products, all with different APNs, to be built off the same code base.
To configure APNs at the product level, add a line to the product configuration file like the example below (vendor/<vendor_name>/products/myphone-us.mk
):
PRODUCT_COPY_FILES := vendor/acme/etc/apns-conf-us.xml:system/etc/apns-conf.xml
At runtime, the Android reads APNs from the following file:
system/etc/apns-conf.xml
Android supports the following run-time network configuration methods to choose the appropriate APN from the list of configured APNs:
To customize the list of Android packages for a particular product (applications, input methods, providers, services, etc.), set PRODUCT_PACKAGES
property in the product configuration, as illustrated below:
PRODUCT_PACKAGES := / <company_name>Mail / <company_name>IM / <company_name>HomeScreen / <company_name>Maps / <company_name>SystemUpdater
Package names should correspond to the LOCAL_PACKAGE_NAME
specified for each package's build target. For example, the Android.mk
build target for <company_name>Mail, referenced above, could look like this:
# 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
Note that the home screen is just an Android application that can be replaced entirely or customized by changing source code and application resources (Java source, layouts, etc.).
Browser bookmarks are stored as string resources in the Browser application: //android/packages/apps/Browser/res/values/strings.xml
. Bookmarks are defined as simple value string arrays called "bookmarks". Each bookmark entry is stored as a pair of array values; the first represents the bookmark name and the second the bookmark URL. For example:
<!-- 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>
Like and Android application resource, the platform will load alternate resources based on the platform configuration values. See Resources and Internationalization in the Android SDK for details. To configure bookmarks for a specific mobile network operator, place your customized bookmarks in a separate strings.xml
file and place it under a Mobile Network Code (MNO) specific resource folder. For example, Browser/res/values-mccXXX-mncYYY/strings.xml
where XXX and YYY represent the three-digit MCC and two to three digit MNC values.
Android loads any configuration-specific resources as override values for the default values, so it is only necessary to include the bookmarks string-array values in this file.
The default email provider settings are stored as string resources in the Email application (//android/packages/apps/Email/res/xml/providers.xml
) as illustrated below.
<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>
As with all Android application resources, the platform will load alternate resources based on the platform configuration values. See Resources and Internationalization in the Android SDK for details. To configure email providers for a specific mobile network operator, place the customized providers in a separate providers.xml
file and place it under a Mobile Network Code (MNO) specific resource folder. For example, Email/res/xml-mccXXX-mncYYY/providers.xml
where XXX and YYY represent the three-digit MCC and two to three digit MNC values.
System level styles are defined in //android/framework/base/core/res/res/values/styles.xml
.
Android supports configurable animations for window and view transitions. System-level animations are defined in XML in global resource files located in //android/framework/base/core/res/res/anim/
.