Customization

Boot Screen Customization

At startup, Android displays a splashscreen image while booting the device. Do the following if you wish to modify the default splash screen:

  1. Create a 320x480 image, splashscreen.jpg in this example.
  2. Using ImageMagick, convert your .jpg file to .r format:
     
    convert screen.jpg screen.r
    
  3. Use the rgb2565 application to convert the image to 565 format:
     
    rgb2565 < screen.rgb > screen.565
    
  4. Use fastboot to flash the image to the device:
     
    fastboot flash splash1 screen.565
    

Network Customization Platform

Network Configuration

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"
/>
Build-time APN configuration

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
APN configuration at run time

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:

  • Automatic Configuration: At boot time, Android determines the correct network configuration based on the MCC and MNC from the SIM card and automatically configure all network settings.
  • Manual Configuration: The platform will also support runtime (user) manual selection of network settings by name, for example, "Company Name US," and will support manual network configuration entry.
  • WAP / SMS Push Configuration: The network configurations are standard Android resources. You can upgrade a resource at runtime by installing a new system resource APK package. It will be possible to develop a network configuration service which listens to a specific binary SMS port for binary SMS messages containing the network configurations. NOTE: The implementation will likely be network operator dependent due to inconsistent SMS ports, binary SMS formats, etc.

Customizing pre-loaded applications

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.).

Customizing browser bookmarks

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.

Email Provider Customization

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.

Platform Themes

Themes and Styles

System level styles are defined in //android/framework/base/core/res/res/values/styles.xml.

Animations

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/.

↑ Go to top
### 回答1: 自定义工具是一种允许用户根据自己的需要定制软件或硬件的应用程序或服务。自定义工具可以使用户根据特定要求来创建个性化的解决方案,以满足自己的业务需要。这种工具在不同的行业中得到了广泛的应用,例如科学研究、工业制造、企业管理等。通过自定义工具,用户可以将现有的功能进行修改或增强,以满足个性化的需求,同时还可以加强软件的合规性和安全性。另外,自定义工具也能够极大地增强用户的体验,提高软件和硬件的适用性和可用性。总之,自定义工具可以为用户提供灵活性和多样化的选择,使得用户可以更好地适应和应对不同的环境和应用场景,提高效率和质量,同时也为企业的发展提供了更好的保障。 ### 回答2: Customization Tool是一种个性化定制工具,它主要用于帮助用户个性化定制、配置和管理他们的应用程序、网站或设备等。通过使用这个工具,用户可以选择自己的品牌标志、颜色方案、背景图像、字体和其他设计元素,以创建定制化的用户界面。这种工具通常被广泛应用于各行业和领域,例如电子商务、移动设备应用、教育机构和企业应用等领域。 Customization Tool的核心功能包括:1)提供一组可定制的预制模板和元素,以帮助用户快选定制化过程;2)易于使用的界面和工作流程,以帮助用户快速生成并实现他们的自定义请求;3)多平台支持,以支持在不同的设备和应用程序上进行个性化定制;4)自动生成代码功能,以加快用户的构建和部署速度。 随着人工智能(AI)和机器学习的发展,Customization Tool也正在逐渐智能化。未来,Customization Tool将具有更高的可智能化程度,它将能够分析用户行为、喜好和趋势,以提供更智能化的用户建议和设计元素。此外,Customization Tool还将能够与其他设备和应用程序进行集成,以更好地支持用户的业务流程和任务完成。 ### 回答3: 定制化工具是一种软件程序或平台,旨在提供一种简单的方法来创建个性化的产品或服务。这些工具通常用于网站、应用程序和其他数字产品,并能用于不同层次的用户,包括开发者和非技术人员。 定制化工具提供了一种简便的方法,让用户根据自己的需求来创建或修改产品。它们使得用户能够更快地构建、调整和部署产品,从而大幅度缩短了产品开发时间。这些工具还增加了用户对产品的参与度,提高了他们对所创造产品的满意度。 定制化工具能帮助用户更好地了解自己所需的产品,并提供更好的体验。事实上,定制化工具是一个快速、方便、经济实惠和易于使用的工具,可以帮助用户更好地满足市场需求。 总之,定制化工具是一种有用的解决方案,可帮助企业和个人在数字产品领域更好地理解和挖掘市场需求,并更快地开发出更符合市场需求的产品。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值