当前位置:  编程技术>移动开发
本页文章导读:
    ▪正向地质编码服务和反地理编码服务        正向地理编码服务和反地理编码服务 正向地理编码服务实现了将中文地址或地名描述转换为地球表面上相应位置的功能。正向地理编码提供的专业和多样化的引擎以及丰富的数据库数据使.........
    ▪ ViewPager小结        ViewPager总结 ViewPager的包android.support.v4.view.ViewPagerViewPager的主要部分是处理PagerAdapter和OnPagerChangeListener使用ViewPager主要步骤有:1、在布局文件中使用ViewPager控件2、初始化ViewPager3、初始化Pag.........
    ▪ 常见的手机配置处置       常见的手机配置处理 1,开机不停震动手机开机,马达一直震动,应该是uboot正常启动后,没有设置震动关闭解决:在震动200ms后关闭马达u-boot/property/normal_mode.cvoid normal_mode(void){//MMU_Init(CONF.........

[1]正向地质编码服务和反地理编码服务
    来源: 互联网  发布时间: 2014-02-18
正向地理编码服务和反地理编码服务
正向地理编码服务实现了将中文地址或地名描述转换为地球表面上相应位置的功能。

正向地理编码提供的专业和多样化的引擎以及丰富的数据库数据使得服务应用非常广泛,在资产管理、规划分析、供应物流管理和移动端输入等方面为用户创造无限的商业价值。
反向地理编码服务

反向地理编码服务实现了将地球表面的地址坐标转换为标准地址的过程,

反向地理编码提供了坐标定位引擎,帮助用户通过地面某个地物的坐标值来反向查询得到该地物所在的行政区划、所处街道、以及最匹配的标准地址信息。通过丰富的标准地址库中的数据,可帮助用户在进行移动端查询、商业分析、规划分析等领域创造无限价值。

    
[2] ViewPager小结
    来源: 互联网  发布时间: 2014-02-18
ViewPager总结
ViewPager的包android.support.v4.view.ViewPager
ViewPager的主要部分是处理PagerAdapter和OnPagerChangeListener
使用ViewPager主要步骤有:
1、在布局文件中使用ViewPager控件
2、初始化ViewPager
3、初始化PagerAdapter
  
   需要实现四个方法
   isViewFromObject 判断选择哪个界面
   getCount    界面数量
   instantiateItem 显示当前的界面
   destroyItem  销毁以前的界面

4、设置OnPagerChangeListener
   主要在onPageSelected()方法中实现相关的

package com.viewpager;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;

public class MainActivity extends Activity {
	
	ViewPager viewPager ;
	
	List<View> views = new ArrayList<View>();

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		viewPager = (ViewPager) findViewById(R.id.viewpager);
		init();
	}
	
	private void init(){
		views.add(getLayoutInflater().inflate(R.layout.first, null));
		views.add(getLayoutInflater().inflate(R.layout.seconde, null));
		views.add(getLayoutInflater().inflate(R.layout.third, null));
		
		viewPager.setAdapter(adapter);
		viewPager.setOnPageChangeListener(changeListener);
	}
	
	PagerAdapter adapter = new PagerAdapter() {
		
		@Override
		public boolean isViewFromObject(View view, Object object) {
			return view == object;
		}
		
		@Override
		public int getCount() {
			return views.size();
		}
		
		public Object instantiateItem(View container, int position) {
			((ViewPager)container).addView(views.get(position));
			return views.get(position);
		};
		
		public void destroyItem(View container, int position, Object object) {
			((ViewPager)container).removeView(views.get(position));
		};
	};
	
	OnPageChangeListener changeListener = new OnPageChangeListener() {
		
		@Override
		public void onPageSelected(int position) {
			
		}
		
		@Override
		public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
			
		}
		
		@Override
		public void onPageScrollStateChanged(int state) {
			
		}
	};
}


    
[3] 常见的手机配置处置
    来源: 互联网  发布时间: 2014-02-18
常见的手机配置处理
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"

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"  //三星设备号


23,Touchevent中,返回值是 true ,则说明消耗掉了这个事件,返回值是 false ,则没有消耗掉,会继续传递下去。
    在 View 中跟 Touch 相关的事件有 dispatchTouchEvent , interceptTouchEvnet , onTouchEvent 三种。 dispatchTouchEvent 是负责分发事件的,事件从 activity 传递出来之后,最先到达的就是最顶层 view 的 dispatchTouchEvent ,然后它进行分发,如果返回 false ,则交给这个 view 的 interceptTouchEvent 方法来决定是否要拦截这个事件,如果 interceptTouchEvent 返回 true ,也就是拦截掉了,则交给它的 onTouchEvent 来处理,如果 interceptTouchEvent 返回 false ,那么就传递给子 view ,由子 view 的 dispatchTouchEvent 再来开始这个事件的分发。
   如果事件传递到某一层的子 view 的 onTouchEvent 上了,这个方法返回了 false ,那么这个事件会从这个 view 往上传递,都是 onTouchEvent 来接收。而如果传递到最上面的 onTouchEvent 也返回 false 的话,这个事件就会“消失”,而且接收不到下一次事件。(一次事件指的是 down 到 up 之间的一系列事件)
From:http://blog.csdn.net/bmj/article/details/8649376

1.处理系统字体大小
Android系统中在Settings->Display->Font Size下面可以设置系统字体大小,默认的系统字体大小为Normal,如果想修改这个默认值,可以在下面这个文件中进行修改:
在alps/frameworks/base/core/java/android/content/res/Configuration.java文件中如下
public void setToDefaults() 这个方法中进行修改,
如果默认要改成特大字体,请改为1.15f,然后重新build framework.jar这个模块即可;
public void setToDefaults() {
fontScale = 1.15f; //normal value is 1
mcc = mnc = 0;
注意:Settings中系统的字体大小,在/packages/apps/Settings/res/values/arrays.xml文件中的
”entryvalues_font_size”这个tag中分别有定义对应的数值,
Small:0.9
Normal:1.0
Large:1.1
所以如果要修改默认值,直接在上面那个方法中修改fontScale 为对应的数值即可(注意带上f,表示为float类型)
System.getFloat(getContext().getContentResolver(), "font_scale");

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3