asysbang

标题: 系统定制汇总 [打印本页]

作者: admin    时间: 2013-4-24 20:07
标题: 系统定制汇总
转载请注明:www.asysbang.com

对于做image开发的程序员来说,各种定制是经常遇到的,这里做一个汇总:

1、桌面图标定制

      修改packages/apps/Launcher2/res/xml/default_workspace.xml     pad对应res/xml-sw600dp/default_workspace.xml

      可以用的标签包括 favorite  和   appwidget   

       可以用的属性launcher:packageName  launcher:className  launcher:screen   launcher:x  launcher:y         

       其中appwidget还可以用launcher:spanX  launcher:spanY

       其中favorite 在手机上还可以定义launcher:container="-101"  来定制在hotseat上面的应用

2、系统设置定制  

      frameworks/base/packages/SettingsProvider/res/values/defaults.xml

      默认屏幕超时时间:def_screen_off_timeout

      默认屏幕亮度:def_screen_brightness

      安装非市场下载的应用:def_install_non_market_apps

      默认输入法:android默认没有这个定制的接口,可以参考上面的INSTALL_NON_MARKET_APPS自己添加个DEFAULT_INPUT_METHOD

                           需要在DatabaseHelper添加loadStringSettings  以及在defaults.xml添加对应的字符串

                           因为输入法的service启动之后也是读取settingsprovider的数据库的
      
3、系统语言列表定制

     如果不做任何修改,那么系统的语言列表会有几十项语言供选择,那么如何定制这个列表呢?

     build/target/product/full_base.mk               build/target/product/locales_full.mk     build/target/product/languages_full.mk  里面都维护了PRODUCT_LOCALES

     full_base.mk:58    $(call inherit-product, $(SRC_TARGET_DIR)/product/locales_full.mk)     full_base.mk调用       locales_full.mk

     locales_full.mk:3   $(call inherit-product, build/target/product/languages_full.mk)     locales_full.mk调用 languages_full.mk

     最终PRODUCT_LOCALES被追加的很长,也就有了很多的语言。

     所以只要重新处理下build下面的调用逻辑,修改PRODUCT_LOCALES的值就可以了

     PS:如果一套代码只对应一个产品,可以直接修改,但是如果是多个产品那么就会对多个产品都有影响,需要自己添加标签去控制这个变量



4、系统字体定制

     这个需求不是很多,但是android也提供了对应的定制接口

     frameworks/base/data/fonts/vendor_fonts.xml  可以查看这个文件里面的描述

    只要在产品的mk中用PRODUCT_COPY_FILES把vendor_fonts.xml拷贝到system/etc/fallback_fonts.xml下面就可以了

     实际上在skia解析字体时,会分别解析system_fonts.xml和vendor_fonts.xml里面定义的字体,然后根据vendor_fonts.xml里面定义的顺序,把字体插入到system_font的队列中

         

  





欢迎光临 asysbang (http://asysbang.com/) Powered by Discuz! X2.5