`
Jacular
  • 浏览: 183110 次
  • 性别: Icon_minigender_1
  • 来自: 云南
社区版块
存档分类
最新评论

android系统开发设置

阅读更多
1,开机不停震动
手机开机,马达一直震动,应该是uboot正常启动后,没有设置震动关闭
解决:在震动200ms后关闭马达
u-boot/property/normal_mode.c
void normal_mode(void)
{
//MMU_Init(CONFIG_MMU_TABLE_ADDR);
vibrator_hw_init();


set_vibrator(1);
udelay(200*1000);
set_vibrator(0);
...
}


2,关机震动时间设置
frameworks/base/core/java/com/android/internal/app/ShutdownThread.java中
private static final int SHUTDOWN_VIBRATE_MS = 500;   //默认震动0.5秒,修改这个参数




3,设置系统默认音量
修改文件:frameworks/base/media/java/android/media/AudioManager.java
public static final int[] DEFAULT_STREAM_VOLUME = new int[] {
         4,  // STREAM_VOICE_CALL
         7,  // STREAM_SYSTEM
         5,  // STREAM_RING
         11, // STREAM_MUSIC
         6,  // STREAM_ALARM
         5,  // STREAM_NOTIFICATION
         7,  // STREAM_BLUETOOTH_SCO
         11, // STREAM_FM
         11, // STREAM_DTMF
         11, // STREAM_TTS
         7  // STREAM_SYSTEM_ENFORCED
     };
根据需要进行修改即可。
注意:如果在3rdparty里面有同名文件最好一起修改。


4,如何调节音量档位
需要根据自己的情况来调整index to volume的算法。
相关实现的模块是 AudioPolicy。基类 AudioPolicyManagerBase 文件位于
framework/base/services/audioflinger/AudioPolicyManagerBase.cpp
实现类 AudioPolicyManagerALSA,位于
external/sprd/alsa/alsa_sound/AudioPolicyManagerALSA.cpp
函数 computeVolume:
这个方法平台目前没有用子类实现,所以走的是基类方法。如果客户需要修改,建议在子类中重载这
个方法。
再讲下基类方法:
1 通过 index 算出一个百分比;
2 通过这个百分比经过一个对数转换换成音量的百分比;
3 特殊情况的一些转换;
修改建议是子类的方法应该调用基类的方法并且做微调。
比如对 1,将 index 到百分比的对应关系略微修改。
比如对 3,可以把基类方法处理的结果在根据需要调整。


5,电池相关
若手机界面的电池进度条显示不够准确,请根据实际测试值调整kernel\drivers\ power\charge.c 的voltage_capacity_table表格中的值 15%对应的是低电告警电压,而0%是自动关机电压。
电池的报警电压调整:frameworks\base\core\res\res\values\config.xml,
config_lowBatteryWarningLevel:15----->百分比,可以动态调整该数值来调整低电电压。
过压保护的逻辑在:
Kernel\drivers\power\sprd_power.c里
charge_handler()函数中有个battery_data->over_voltage用于电压保护逻辑。
这个数值的来源是Kernel\arch\arm\mach-sc8810\include\mach\chg_drvapi.h
#define OVP_OVER_VOL 6500


6,修改系统默认时间:
修改\idh.code\kernel\drivers\rtc\ rtc-sprd.c
static int __init sprd_rtc_init(void)
{
......
sec_2011_to_1970 = mktime(2011, 1, 1, 0, 0, 0);
return 0;
}
mktime函数的参数即是修改点。
同时还要同步修改闹钟时间,否则闹钟会有问题。
packages\apps\DeskClock\src\com\android\deskclock\Alarms.java
private static void alarm_flag_setup(final long alarmTimeInMillis) {
Calendar c = Calendar.getInstance();
c.set(2011, 0, 1, 0, 0, 0);//注意这里月份是0代表1月
......


7,如何设置版本号
定义 android 版本号的地方在 build/tools/buildinfo.sh 内,可以修改此文件。
ro.build.display.id=$BUILD_DISPLAY_ID 改为 ro.build.display.id= $BUILD_D ISPLAY_ID_CUSTOM, 然 后 在customize/custom_cfg/proj_name/res/boardconfig.mk
下 定 义 宏BUILD_DISPLAY_ID_CUSTOM 就可以为自己的项目定义版本号.
显示硬件版本在设置->关于手机->硬件版本里看到:
packages/apps/Settings/res/xml/device_info_settings.xml
<Preference android:key="hardware_number"
style="?android:preferenceInformationStyle"
android:title="@string/hard_version"
android:summary="1.1.0"/>


8,无接近传感器,如何在开始通话后关闭屏幕
在 Phone 应用的 phoneApp 这个类中。找到下边这段代码:
mProximityWakeLock =
pm.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, LOG_TAG);
然后注释掉。这个是获取了接近传感器的 WakeLock。然后在 updatePokeLock 这个方法中。将
//pokeLockSetting |= LocalPowerManager.POKE_LOCK_MEDIUM_TIMEOUT;
改为
pokeLockSetting |= LocalPowerManager.POKE_LOCK_SHORT_TIMEOUT;
将updateWakeState 方法中
setScreenTimeout(ScreenTimeoutDuration.DEFAULT);
改为
setScreenTimeout(ScreenTimeoutDuration.SHORT);
这个是将默认延时时间设置为SHORT(5秒)。如果需要改为其他时间需要去改 setScreenTimeout
这个方法。


9,ms,mms,contact 容量限制
[适用版本]2.3.5
1.只要在容量允许的情况下,sms,mms 接收条数是没有限制的,但是每个会话的条数是有限
制的,默认情况下,每个会话的短信限存 200 条,彩信限存 20 条,但是能调整到 5000 条。
MmsConfig.java 代码中做了如下限制:
private static int mDefaultSMSMessagesPerThread = 200;// default value
private static int mMinMessageCountPerThread = 2; // default value
private static int mMaxMessageCountPerThread = 5000; // default value
private static int mDefaultMMSMessagesPerThread = 20; // default value
2.contact 的记录总数目前没有限制。


10,单摄像头进入时间较长如何解决
在customize/customer_cfg/project.../kernel/camera/camera_cfg.c中main_sensor_infor_tab和sub_sensor_infor_tab里会放很多sensor的结构体;camera启动初始化时,底层驱动会匹配相关的菜单,删除没有的sensor,能加快启动


11,客户定制开/关机铃声
开机:替换 3rdparty/anim/poweranim/special/bin/startupsound
关机:替换 3rdparty/anim/poweranim/special/bin/shutdownsound
注:这里的startupsound/shutdownsound可以是mp3或者ogg格式的,替换时不需要扩展名


12,背光亮度,静音等默认值修改
修改\frameworks\base\packages\SettingsProvider\res\values\defaults.xml中的默认值即可。


13,浏览器如何修改内置的“搜索引擎”
修改packages\apps\browser\res\values\donoottranslate-search_engines,xml文件,中
“search_engines”的string-arry中的item项即可。如下事例为内置了 139/百度/google 三个搜索引
擎。
<item>search139</item>
<item>baidu</item>
</string-array>
<item>google</item>
<string-array name="search_engines" translatable="false">
注意:如果支持多种语言,其他文件下的同名文件donoottranslate-search_engines,xml也需要
修改。


14,关机充电动画修改
关机充电动画的资源路径是:
external/sprd/charge/res/images/(展讯平台)
将这个目录下的 png 图片文件修改客户需要的文件就可以了。


15,如何设置默认动态壁纸
找到 /frameworks/base/core/res/res/values/config.xml 文件中
<string name="default_wallpaper_component">@null</string>
为设置默认壁纸的代码如若想要更换成为动态壁纸。只需将“@null”更改为动态壁纸的路径即可,例如:将默认壁纸更改为“线性光幕效果”的动态壁纸,则更改成如下代码:
<string name="default_wallpaper_component">com.android.wallpaper/com.android.wallpaper.nexus.NexusWallpaper</string>
com.android.wallpaper 在 AndroidManifest 文件中的 packagename
com.android.wallpaper.nexus.NexusWallpaper 在 AndroidManifest 文件中的 service name
需要注意的是:静态的图片壁纸和 live wallpaper 是两个系统,加载的时候是完全两套机制,静态图片
通过 launcher 里面的一个 xml 文件配置来管理系统默认静态壁纸,live wallpaper 则是通过 intent 机制向系统搜寻所有匹配 Activity,所以,这里的默认值为 null,而不是那个系统默认静态壁纸的地址,系统是读 config.xml 文件的设置,若为 null 才继续查找静态壁纸配置内容. 没有效果的话,恢复下出厂设置即可。


16,如何设置系统默认壁纸
如果只需要修改动态壁纸,替换 frameworks/base/core/res/res/drawable/default_wallpaper.jpg即可,或者在源码中修改对应 default_wallpaper地址。


17,关机菜单中如何添加重启选项
/frameworks/base/policy/src/com/android/internal/policy/impl/GlobalActions.java" 文件添加如下修改部分即可:
mItems = Lists.newArrayList(
// silent mode
mSilentModeToggle,
// next: airplane mode
mAirplaneModeOn,
new SinglePressAction(
                         com.android.internal.R.drawable.ic_lock_power_off,
                         R.string.global_action_power_off) {
                     public void onPress() {
           // shutdown by making sure radio and power are handled accordingly.
                         ShutdownThread.shutdown(mContext, true);
                     }


                    public boolean showDuringKeyguard() {
                         return true;
                     }


                    public boolean showBeforeProvisioning() {
                         return true;
                     }
                 },
// add for reboot
new SinglePressAction(
          com.android.internal.R.drawable.ic_lock_power_off, //替换成相应的图
          R.string.global_action_power_off) { //替换成相应的提示文字
          public void onPress() {
            ShutdownThread.reboot(mContext, null, true);
          }


         public boolean showDuringKeyguard() {
            return true;
          }


         public boolean showBeforeProvisioning() {
            return true;
          }
       });
//end add


18 如何修改系统默认输入法
下面将以“谷歌拼音输入法”为例,进行解释和说明。
第一步 修改/frameworks/base/packages/SettingsProvider/res/values/defaults.xml 添加如下代码:
<string name="config_default_input_method"
translatable="false">com.android.inputmethod.pinyin/.PinyinIME</string>


com.android.inputmethod.pinyin 在 AndroidManifest 文件中的 packagename
.PinyinIME 在 AndroidManifest 文件中的service name
第二步:修改
/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
在 private void loadSecureSettings(SQLiteDatabase db) 方法中,添加如下代码:
loadStringSetting( stmt, Settings.Secure.DEFAULT_INPUT_METHOD,
R.string.config_default_input_method );


19,如何在桌面预置应用程序图标
桌面预制的图标:是在 launcher2 的 default_workspace.xml中配置的,文件路径:
Launcher2\res\xml\default_workspace.xml


20,添加搜索引擎
以添加139搜索引擎为例
a) 在packages/apps/Browser/res/values/all_search_engines.xml
<string-array name="search139" translatable="false">
<item>139</item>
<item></item>
<item>http://s.139.com/favicon.ico</item>
<item>http://s.139.com/search.do?q={searchTerms}&amp;category=downloadable|web|browseable&amp;tid=2123,2124,2125,2126&amp;fr=portalcustom2</item>
<item>UTF-8</item>
<item></item>
</string-array>
这6个<item>从上到下依次表示显示标签,关键字,搜索图标,搜索引擎地址,编码方式,搜索提示地址。
b) 在packages/apps/Browser/res/values/donottranslate-search_engines.xml
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string-array name="search_engines" translatable="false">
<item>search139</item>
<item>baidu</item>
<item>google</item>
<item>yahoo</item>
<item>bing</item>
</string-array>
</resources>
在这边将139搜索引擎添加进来。
这边添加的搜索引擎是将1中的添加的搜索引擎变成设置中选择搜索引擎的选项。


21,修改 idle 界面搜索引擎的链接地址
packages/apps/quicksearchbox/res/values/strings.xml 下修改:
www.google.com为www.google.com.hk


22,linux下ADB安装后增加设备权限:
/etc/udev/rules.d/51-Android.rules
SUBSYSTEM=="usb", SYSFS{"huawei"}=="12d1", MODE="0666"   //华为设备号
SUBSYSTEM=="usb", SYSFS{"Samsung"}=="04e8", MODE="0666"  //三星设备号
分享到:
评论

相关推荐

    《Android系统开发与实践》 PDF

    《Android系统开发与实践》这本书深入探讨了Android操作系统的核心技术和实际应用开发,是广大Android开发者和爱好者提升技术能力的重要参考资料。书中的内容涵盖了从系统架构到应用层开发的多个方面,旨在帮助读者...

    Android系统移植与平台开发

    Android系统移植与平台开发涉及到多个方面,包含对Android系统本身的下载、编译、移植过程,以及对开发人员如何针对特定硬件平台进行开发的指导。本篇文档的内容详细描述了Android系统移植与平台开发的前期准备、...

    Android开发安卓大作业人脸识别签到系统源码.zip

    Android开发安卓大作业人脸识别签到系统源码Android开发安卓大作业人脸识别签到系统源码Android开发安卓大作业人脸识别签到系统源码Android开发安卓大作业人脸识别签到系统源码Android开发安卓大作业人脸识别签到...

    android系统原理及开发要点详解

     第2章“Android系统开发综述”,介绍Android系统开发的综述性内容,包括工具使用、获得代码、编译系统、仿真器运行、SDK使用等。  第3章“Android的Linux内核与驱动程序”,介绍Android内核的特点、Android中使用...

    《Android系统移植和驱动开发》 PDF

    目前企业对Android人才需求主要分布在应用开发和底层系统开发两个方面,企业最紧缺的是兼具二者的全才型系统工程师,和嵌入式Linux人才需求基本相似。结合这样的人才需求特点,本书的读者是想兼顾应用开发和底层开发...

    14本安卓android开发教程书籍源代码.rar

    安卓Android_开发环境搭建、配置(基于Windows操作系统、MyEclipse、安卓Android 安卓android手机游戏设计达人讲座 安卓Android4.2.x应用环境搭建 安卓Android编程Android指南程序员入门中文版 安卓Android从入门到...

    《Android应用程序开发教程(第2版)》教学课件01Android系统与开发环境.pdf

    《Android应用程序开发教程(第2版)》教学课件01Android系统与开发环境.pdf《Android应用程序开发教程(第2版)》教学课件01Android系统与开发环境.pdf《Android应用程序开发教程(第2版)》教学课件01Android系统与开发...

    Android系统原理与开发要点详解_培训课件下载

    Android系统原理与开发要点详解_培训课件下载。 Android系统原理与开发要点详解_培训课件下载。 Android系统原理与开发要点详解_培训课件下载。 Android系统原理与开发要点详解_培训课件下载。 Android系统原理与...

    安卓9.0系统自带settings系统设置apk源码

    这个"安卓9.0系统自带settings系统设置apk源码"提供了深入理解Android系统设置实现的绝佳机会。Android 9.0,也被称为Pie(馅饼),是Android操作系统的一个重大更新,引入了许多新功能和性能改进。下面将详细介绍这...

    Android应用获取系统权限,修改系统时间

    在Android系统中,这些权限是严格控制的,一般的应用程序无法直接获取。但通过特定的技术手段,开发者可以尝试在未root的设备上实现这些功能。本文将详细介绍如何在Android应用中获取系统权限并修改系统时间。 首先...

    基于Android开发的点餐系统(前端+服务器)源码

    点餐系统是现代餐饮业与信息技术结合的重要体现,尤其在基于Android开发的移动应用中,其功能强大且便于用户操作。本项目是一个完整的点餐系统,涵盖了前端用户界面和后台服务器两大部分,适用于毕业设计或者作为...

    Android 安卓 开发教程 PDF 电子书

    一、Android系统简介 Android是一种开源的操作系统,主要用于移动设备,如智能手机和平板电脑。了解其历史、发展和与Google的关系,以及与其他操作系统(如iOS)的区别,是学习Android开发的第一步。 二、Android...

    安卓收银系统源码android安装包,安卓8.0原生开发

    适合连锁多门店使用的桌面收银系统源码HD版安装包,基于安卓8.0原生开发,适配安卓6.0以系统,可适配市面上各种主流桌面收银设备。

    Android_中文手册_CHM_Android_开发手册_安卓开发手册.zip

    Android_中文手册_CHM_Android_开发手册_...2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。

    Android操作系统开发

    Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。 2010年末数据显示,仅正式推出两年的操作系统的...

    基于Android Studio开发的安卓的信息管理系统

    《基于Android Studio开发的安卓信息管理系统详解》 在当今移动互联网时代,Android Studio作为Google官方推荐的Android应用开发集成开发环境(IDE),已经成为广大开发者首选的工具。本项目以“基于Android Studio...

    课程设计-基于Android studio开发的安卓图书管理系统.zip

    3. **数据库操作**:Android系统提供SQLite数据库支持,可以用来存储图书信息。开发者需要创建一个SQLite数据库,定义数据表结构,以及相应的数据库操作类,如增删改查的方法。 4. **内容提供者**(Content ...

    android studio 学生信息管理系统实现源码(安卓开发教程课后练习)

    android studio 学生信息管理系统实现源码(安卓开发教程课后练习)android studio 学生信息管理系统实现源码(安卓开发教程课后练习)android studio 学生信息管理系统实现源码(安卓开发教程课后练习)android ...

    Unity开发获取和设置Android系统的音量

    unity开发apk,获取和设置Android系统底层音量值,C#方法可直接调用,不需要jar包。

Global site tag (gtag.js) - Google Analytics