Android4.0 SDK新功能详解
- 格式:doc
- 大小:961.50 KB
- 文档页数:28
Android SDK介绍1.Android SDK简介即Android Software Development Kit.它提供了在Windows/Linux/Mac平台上开发Android应用的开发组件,包含了在Android平台上开发移动应用程序的各种工具集。
2.Android SDK tools1.Android模拟器(Android Emulator(emulator.exe))运行在计算机上的虚拟移动模拟器,可以使用模拟器来在一个实际的Android运行环境下设计,调试和测试应用程序。
2.集成开发环境插件(Android Development Tools Plugin for the Eclipse IDE 即ADT)可以直接从Eclipse访问其他Android开发工具.通过它可以进行包括截屏,管理端口转发(port-forwarding),设置断点,观察线程和进程信息.(a)它提供了一个新的项目向导(New Project Wizard),用于快速生成和建立起新Android应用程序所需的最基本的文件.(b) 它使得构建Android应用程序的过程变得自动化以及简单化.(c) 它提供了一个android代码编辑器,用于为Android 的manifest和资源文件编写有效的XML.3..调试监视服务(Dalvik Debug Monitor Service(ddms.bat)4.它集成在Dalvik(Android平台虚拟机)中,用于管理运行在模拟器或设备上的进程,并协助进行调试.可以用它来去除进程,选择一个特定程序来调试,生成跟踪数据,查看堆和线程数据,对模拟器或设备进行屏幕快照等.5..Android调试桥(Android Debug Bridge(adb.exe))6.它用于向模拟器或手机设备安装应用程序的apk文件和从命令行访问模拟器或手机设备.也可以用于将标准的调试器连接到运行在android模拟器或手机设备上的应用代码.7..Android资源打包工具(Andoird Asset Packing Tool(aapt.exe))8.可以通过aapt工具来创建apk文件,这些文件包含了android应用程序的二进制文件和资源文件.9..Android接口描述语言(Android Interface Description Language(aidl.exe))10.它用来生成进程间接口代码,在服务中便可用到.11..SQLite3数据库(sqlit3(sqlite3.exe))12.Android应用程序可以创建和使用SQLite数据文件,开发者和使用者也可以方便的访问这些数据文件.13..跟踪显示工具(Traceview(traceview.exe))14.它可以生成跟踪日志数据的图形分析视图,这些跟踪日志数据由android因公程序产生.15..创建SD卡工具(mksdcard(mksdcard.exe))16.它帮助创建磁盘镜像,这个磁盘镜像可以在模拟器上模拟外部存储卡.17..DX工具(dx(dx.exe))18.它将class字节码重写为android字节码(存储到dex文件中).19..生成Ant构建文件(activityCreator(activitycreator.bat))20.它是一个脚本.用来生成Ant构建文件,Ant构建文件用来编译android应用程序.若是在安装了ADT插件的Eclipse环境下开发则不需要这个脚本.21..Android虚拟设备(Android Virtual Devices AVD)22.每个android虚拟设备(AVD)模拟了单一的虚拟设备来运行android平台,这个平台至少要包括自己的内核,系统图像和数据分区.开发者可以创建并保存多种虚拟模拟器配置,每种配置环境有其自己的平台版本,硬件配置以及SD卡和用户数据,还可以有不同的显示外观等个性化设置,运行时只需要制定需要使用哪个.即可实现多平台下的模拟测试.3.Adnroid 核心包1.android.app:实现Android的应用程序模型。
Android SDK离线安装是本文要介绍的内容,主要是来了解并学习Android SDK安装的内容,具体关于Android SDK是如何离线安装的内容来看本文详解。
Android开发环境,完整的说包括JDK,Eclipse,AndroidSDK和ADTplugin。
四个之中最麻烦的就是Android SDK的安装,现在google的策略是将SDK和platform分离开来,所以在线安装Android SDK的时候会让你选择需要选择platform版本和SDK其他组件的版本。
Android SDK下载安装过程中,如果网速太慢或者网路上有防火墙经常会导致整个安装失败。
如果你了解Android SDK安装的内部实现过程,其实离线安装也非常简单。
整个安装过程只不过是把你选择的组件下载解压到相应的文件夹中。
针对不同的情况,有两个不同的安装方法:安装Android SDK之前的准备工作:1.正确安装JDK5或者JDK6(仅有JRE是不够的),官方下载地址:JDK5orJDK6。
2.Eclipse3.5及其以上版本正确安装,官方下载地址:Eclipse3.6.2,建议选择使用EclipseIDEforJavaDevelopers版本,文件最小,解压即可使用的绿色版本。
3.从ADT8.0开始,Android SDK,ADT的版本是一一对应的,比如ADT11.0.0对应SDKr11,ADT10.0.0和10.0.1都对应SDKr10.更为详细的版本对应关系可以在系统需求查到。
本文中使用的版本分别是Eclipse3.6.1,SDKR11,ADT11.0.0.复制安装Android SDK第一种情况,如果已经有一台安装好Android SDK的机器,你需要做的只是把Android SDK文件夹下的所有文件打个包,然后复制到你的机器中解压出来就可以了。
如下图所示,platforms,platform-tools,tools 和SDKManager是必不可少的,要确保上面三个文件夹中包含有对应版本的工具和组件。
昨天,Google举行了发布会,发布了Nexus Prime手机和Android4.0-IceCreamSandwich手机系统。
作为Google旗下Android的最新版本手机系统,Android4.0获得了业界很大的关注,很多人甚至把它和苹果的iOS5相提并论,可见对其期望之高。
就在发布会结束不久,Google就在Android开发者官网放出了最新的Android4.0 SDK。
下面二黑就把Android SDK 4.0的安装过程简单的写一下,给需要的同学。
准备:首先你需要去Android开发者官网下载最新的SDK R14,如果你是一个开发者以前安装过Android SDK ,你也可以选择更新到最新版本,但我这里不推荐,因为中间会遇到很多问题,建议全新安装。
此外你还需要安装Java(JDK),因为SDK的运行需要。
Android SDK:Windows绿色版(个人推荐)| Windows安装版| Mac OS X版| Linux版1、下载完SDK后,绿色版解压压缩包到一个目录,安装版直接安装。
注意目录路径不能有空格,也就是说program files不行,然后打开SDK Manager.exe:2、打开之后会看到SDK R14的全新界面,选择你需要安装的文件,图中红框里的为必选项目,如果后面的标记为installed则可以不选,然后点击install packages按钮:3、然后弹出一个窗口会列出你所选项目,点击install开始下载安装,这个过程会需要一段时间:4、下载过程你会看到信息,如果哪里出错的话信息也在这:5、全部安装完成后,打开AVD manager.exe,点击New新建虚拟Android手机:6、打开配置Android系统窗口,配置如下图,配置完后点击Create AVD:7、弹出一个对话框,点OK:8、然后回到AVD manager主界面,选中刚建立的Android设备,点Start:9、又弹出一个对话框,点Launch:10、此时就开始运行Android4.0的设备,第一次开机会有点慢,耐心等待一会:11、最后进入Android4.0界面,大功造成,祝你体验愉快:欢迎你和我对Android4.0进行交流,你可以去我参与管理的人人小站i android查看更多关于Android4.0的资讯。
Android 4.01、Android统一版本电视手机平板融合Android4.0Android 4.0将只提供一个版本,同时支持智能手机、平板电脑、电视等设备。
至此Android 系统设备将迎来统一,Android平板的窘迫现状将得到有效改善。
另一方面包括三星、索尼在内的家电厂商日益发展的Smart TV也将迎来一次有价值的Android版本升级。
2、全新设计的UI人性化体验界面谷歌在经历了Android 2.3的版本更新之后,手机系统UI进行了不小的改进,而新的Android 3.1的用户界面也一改此前Android单调的风格。
在经历了众多版本的演化之后,谷歌应该对于用户界面体验方面有所提升,新的UI设计很有可能会迎来成熟版。
3、3、回归原点保持开源特性此前Android 3.0曾一度宣布不采取开源措施,然而谷歌深知Android系统一大成功特性就是开源。
平板上吃到的苦头势必在全新的Android 4.0上避免,用户为中心的刷机资源一定会让Android 4.0锦上添花。
如果你是一个ROM的定制用户,那么你会对这条消息很开心,相信源码一旦发布,很快就能看到CyanogenMod 9。
4、4、同步升级Linux内核更新3.0以上版本Android4.0Android是Google自己研发的手机平台操作系统,该平台基于开源软件Linux,由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件4.0的版本号就能告诉我们,这是一个大的升级版本。
Linux刚刚发布Linux 3.0内核没多久,后来又更新到了3.0.1 。
5、音频、视频Play Store提供资源下载谷歌已经试水性质的推出了Google Music Beta ,允许上传2万首音乐到Google的云端服务器,自动创建播放列表在任何支持flash的设备上回放,我们有理由相信这种在Appstore影响下的数字视频、音频服务内容的提供也将会出现在Android上。
Android SDK 扩展说明目录Android SDK 扩展说明 (1)1 简介 (3)2 API 详细说明 (3)2.1 扫描头管理类 ScanManager (3)2.1.1 boolean openScanner() (3)2.1.2 boolean closeScanner() (4)2.1.3 boolean getScannerState() (4)2.1.4 boolean startDecode() (4)2.1.5 boolean stopDecode() (4)2.1.6 boolean lockTriggler() (4)2.1.7 boolean unlockTriggler() (5)2.1.8 boolean getTriggerLockState (5)2.1.9 int getScannerType() (5)2.1.10 boolean resetScannerParameters() (5)2.1.11 boolean switchOutputMode(int mode) (5)2.1.12 boolean setOutputParameter(int type, int value) (6)2.1.13 int getOutputParameter(int type) (6)2.2 打印机管理类 PrinterManager (6)2.2.1 int prn_open() (6)2.2.2 void prn_close() (7)2.2.3 int prn_setupPage(int width, int height) (7)2.2.4 int prn_clearPage() (7)2.2.5 int prn_printPage(int rotate) (7)2.2.6 int prn_drawLine(int x0, int y0, int x1, int y1, int lineWidth) (8)2.2.7 int prn_drawText(String data, int x, int y, String fontname,intfontsize, boolean bold, boolean italic, int rotate) (8)2.2.8 int prn_drawTextEx(String data, int x, int y, int width, intheight,String fontname,int fontsize,int rotate,int style ,int format) (8)2.2.9 int prn_drawBarcode(String data, int x, int y, int barcodetype,int linewidth, int height, int rotate) (9)2.2.10 int prn_drawBitmap(Bitmap bmp, int xDest, int yDest,intdestWidth, int destHeight) (9)2.2.11 int prn_getStatus() (10)2.4 磁卡管理类 MagManager (10)2.4.1 FileDescriptor open(int onoff) (10)2.5 设备管理类 DeviceManager (10)2.5.1 String getDeviceID() (10)2.6 IC 卡管理类 IccManager (11)2.6.1 boolean IccOpen() (11)2.6.2 boolean IccClose() (11)2.6.3 byte[] IccFound() (11)2.6.4 int IccSelect(char slot) (11)2.6.5 byte[] IccAct(char vol) (12)2.6.6 byte[] IccExapdu(byte[] apdu, char length) (12)附录1、打印条码类型 (12)1 简介此 SDK 文档针对使用 Urovo 数据采集设备的 android 应用开发人员而编写,Urovo SDK 是在google 官方 android SDK 的基础上增加了扫描头、打印机、磁卡、IC 卡等相关设备的访问接口。
1. Camera Basic:安卓框架支持多种设备的多种相机应用,以支持应用中实现图片和视频的捕获功能。
本文档讨论快速简单的图像和视频捕获实现方式,并概要介绍一种定制化摄像头的实现。
1.1 注意事项:在你的APP添加相机功能之前,首先应该考虑如下几个关于硬件特性的问题:●相机需求:是否你的应用与相机功能紧密相关,即,你的应用将在没有摄像头硬件的设备上无法运行?如果是这样的,那么在manifest文件中应该声明相机需求,参照:1.3清单声明。
●简单拍照功能或是个性化相机:你的应用将如何使用相机?是单纯的简单拍照或摄录,还是提供一种新的个性化的相机使用方式。
对于简单的拍照和摄录,请参照:1.4调用系统相机;对于希望使用个性化相机的开发者,请参见:1.5 个性化相机应用●存储:对于那些通过你的应用所拍摄的图片或视频是希望仅仅被这个应用所使用还是希望被包括图片浏览器等其他应用所使用和查看呢?当这这个应用被卸载之后,是否还希望这个图片能继续保存?参见1.6 保存媒体文件可以学习到相关的更多详情。
1.2 基础知识4个:操控设备摄像头的基本API。
当搭建一个应用的时候,这个类用于实现拍照和摄录功能。
用于为用户呈现摄像头的实时预览。
用于摄像头录像功能。
通过两个intent action来直接使用Camera对象完成拍照或摄像功能,这两个indent action是:●●1.3 清单声明在实际调用摄像头相关API进行开发之前,首先应该向清单文件:“manifest .xml”中添加相应的声明来指明应用使用了摄像头硬件或其他相关特性,这些声明包括:●摄像头权限:应用必须请求权限才能使用设备的摄像头硬件:注:如果应用直接通过Indent 来调用摄像头,则不需要添加这个权限。
●摄像头特性:应用必须声明使用了摄像头这个特性(feature):google play会检查并防止具备这个特性的应用在没有摄像头硬件的设备上安装。
android使用百度地图、定位SDK实现地图和定位功能!(最新、可用+吐槽)2013-10-11 07:57:05 我来说两句作者:ab6326795一、吐槽在百度地图看了几个小时的教程,发现种种问题,很大部分是百度对于定位API 网页上的DEMO代码一大堆错误!这极可能是定位SDK升级后而网页上的DEMO部分代码沿用旧版导致的。
错误1:在该示例中取了个变量叫mLocationClient,后面居然叫mLocClient,我找了半天,说这变量哪来的呢错误2:这个错误是最致命的,在网页上的DEMO(开发指南)里居然连开始定位这个函数至始至终都没调用过!!!新手咋看以为调用这个就可以定位了,擦,其实还应该调用mLocClient.start(); 才行,否则压根就没启动定位。
二、使用百度地图V2.2和定位V4.0实现地图和定位功能1、首先将必要的库文件导入到你的项目里,具体参看这里/map/sdkandev-2.htm/map/geosdk-android-developv4.0.htm2、编写代码(MainActivity.java)package com.android.test;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import com.baidu.location.BDLocation;import com.baidu.location.BDLocationListener;import com.baidu.location.LocationClient;import com.baidu.location.LocationClientOption;import com.baidu.mapapi.BMapManager;import com.baidu.mapapi.map.LocationData;import com.baidu.mapapi.map.MapController;import com.baidu.mapapi.map.MapView;import com.baidu.mapapi.map.MyLocationOverlay;import api.basestruct.GeoPoint;public class MainActivity extends Activity {//百度Keyprivate static final String BD_KEY="请在这里输入你的百度地图Key,这里我删除了我自己的,你自己填";//地图管理器private BMapManager mBMapMan=null;//地图视图private MapView mMapView=null;private LocationClient mLocationClient=null;//我的位置覆盖物private MyLocationOverlay myOverlay;//位置在图层中的索引private int myOverlayIndex=0;//是否定位到我的位置private boolean bmyLocal=true;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);mBMapMan=new BMapManager(getApplication());mBMapMan.init(BD_KEY, null);setContentView(yout.activity_main);//注意:请在试用setContentView前初始化BMapManager对象,否则会报错setContentView(yout.activity_main);mMapView=(MapView)findViewById(R.id.bmapsView);mMapView.setBuiltInZoomControls(true);//设置启用内置的缩放控件MapController mMapController=mMapView.getController();// 得到mMapView的控制权,可以用它控制和驱动平移和缩放GeoPoint point =new GeoPoint((int)(39.915* 1E6),(int)(116.404* 1E6));//用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6) mMapController.setCenter(point);//设置地图中心点mMapController.setZoom(12);//设置地图zoom级别////////////////////////定位功能代码开始mLocationClient=new LocationClient(this);mLocationClient.setAK(BD_KEY);myOverlay=new MyLocationOverlay(mMapView);LocationClientOption option=new LocationClientOption();option.setOpenGps(true);option.setAddrType("all");//返回的定位结果包含地址信息option.setCoorType("bd09ll");//返回的定位结果是百度经纬度,默认值gcj02//当不设此项,或者所设的整数值小于1000(ms)时,采用一次定位模式。
sdk集成流程-概述说明以及解释1.引言1.1 概述概述部分的内容可以从SDK集成的背景和目的进行介绍。
可以包括以下几个方面的内容:SDK(Software Development Kit)是为了给开发者提供便捷工具和接口的一套软件开发工具。
在移动应用开发中,SDK是连接应用开发者与其他服务提供商的桥梁,可以用于集成第三方的功能或服务。
在互联网和移动应用快速发展的背景下,开发者为了在短时间内实现复杂的功能,常常需要依赖于各种各样的第三方服务,如支付SDK、社交分享SDK、云存储SDK等。
这些SDK可以帮助开发者快速接入相关的服务功能而不需要自行编写和维护复杂的代码。
SDK集成流程指的是将第三方提供的SDK集成到自己的应用中的一系列步骤和流程。
这个流程通常包括下载SDK、导入SDK到项目中、配置SDK的参数和权限等。
通过SDK集成,开发者可以实现丰富的功能,并提升应用的用户体验。
在SDK集成过程中,开发者需要了解SDK提供的功能和使用方法,以及集成所需要的技术要求和操作步骤。
同时,还需要考虑SDK与应用的兼容性、性能和稳定性等因素,确保SDK能够正常运行并与应用无缝衔接。
总而言之,SDK集成流程是移动应用开发中非常重要的一环,它可以帮助开发者快速接入各种第三方服务,并提供更多的功能和便利性。
在本文中,将详细介绍SDK集成的流程和注意事项,帮助开发者顺利实现SDK 集成的目标。
文章结构文章的结构对于读者来说非常重要,它可以帮助读者更好地理解和消化文章的内容。
本文将按照以下结构展开:1.引言1.1 概述1.2 文章结构1.3 目的2.正文2.1 第一个要点2.2 第二个要点3.结论3.1 总结3.2 展望在引言部分,我们将介绍sdk集成流程的概述以及本文的目的。
sdk 是软件开发工具包的缩写,它可以提供给开发者一系列的开发工具和接口,方便开发者快速集成相关功能到他们的应用程序中。
然后我们将明确本文的文章结构,以帮助读者更好地理解文章的组织和内容。
Android 各个版本SDK的区别---转载Android 1.5 API变更概要:UI framework· Framework for easier background/UI thread interaction·新SlidingDrawer 组件·新HorizontalScrollview 组件AppWidget framework·一些关于创建桌面AppWidget 的API.·提供根据自定义的内容创建LiveFolders的APIMedia framework·原声录音和回放APIs·交互式的MIDI 回放引擎·开发者使用的视频录像API (3GP format).·视频相片分享Intents·媒体搜索IntentInput Method framework·输入法服务framework·文本预测引擎·提供具有下载能力的IME给使用者Application-defined hardware requirements应用可定义硬件需求,应用程序可以定义说明此程序需要什么硬件需求.比如是否需要物理键盘或者轨迹球.Speech recognition framework·支持语音识别库.Miscellaneous API additions· LocationManager -应用可以接收到位置改变的信息.· WebView - 触摸start/end/move/cancel DOM 事件的支持·重建Sensor Manager APIs· GLSurfaceView - 创建OpenGL 应用更加方便的framework .·软件升级安装成功的Broadcast Intent - 更加平和优秀的软件升级体验Android 1.6 API变更概要:UI framework·新的类android.view.animation 控制动画行为:o AnticipateInterpolatoro AnticipateOvershootInterpolatoro BounceInterpolatoro OvershootInterpolator·新的XML 属性android onClick ,从一个layout文件描述一个view的View.OnClickListener.·对不同分辨率的屏幕的新的支持. 对于Bitmap和Canvas会执行有针对性的缩放行为.该框架会根据屏幕分辨率和其他内容自动缩放bitmap等.要在你的应用中使用Android 1.6包含的API的话你必须要设置"4"属性在manifest的元素中Search framework·应用程序现在可以公开的有关内容,作为建议放入快速搜索框,新的设备范围内的搜索功能,是可从主屏幕搜索。
Android SDK 调试指南∙检查AndroidManifest.xml中是否有配置AppKey,如果没有,则启动失败∙检查Androidmanifest.xml文件配置的正确性,必须要保证“Android SDK 集成指南”中所有标注“∙Required”的部分都正确配置,否则启动失败∙检查JPush SDK库文件的有效性,如果库文件无效,则启动失败∙检查网络是否可用,如果网络可用则连接服务器登录,否则启动失败∙登陆成功后可以从log中看到如下log∙确认Androidmanifest.xml 中所需的所有“Required” 项都已经添加。
如果有"Required" 项未添加,日志会提示错误。
∙确认AppKey (在Portal上生成的) 已经正确的写入Androidmanifest.xml 中,没写会有日志提示错误。
∙确认在程序启动时候调用了init(context) 接口∙确认测试手机(或者模拟器)的网络可用,如果网络正常可用,客户端调用init后不久,应有登录成功(Login succeed)的日志信息,如SDK 启动过程所示∙启动应用程序,登陆Portal 系统,并向应用程序发送自定义消息或者通知栏提示。
在几秒内,客户端应可收到下发的通知或者正定义消息.由于网络连接不稳定的原因,有一定的概率JPush SDK 设置别名与标签会失败。
App 开发者合理地处理设置失败,则偶尔失败对应用的正常使用JPush 影响是有限的。
以下以Android SDK 作为示例。
基本思路:∙设置成功时,往SharePreference里写状态,以后不必再设置∙遇到6002 超时,则稍延迟重试。
Android 客户端网络不稳定,会导致App 有时候无法及时收到Push 消息。
很多开发者认为这是因为JPush推送不稳定、延迟,甚至有时候认为JPush 后台推送系统出问题了。
本文目的是从各个方面来分析Android 网络导致的JPush不能正常工作的问题。
Android4.0 SDK新功能详解Android 4.0 平台API等级:14Android 4.0 是一次重要的平台发布版,为用户和应用程序开发者增加了大量的新特性。
在下面我们将讨论的所有新特性和API中,因为它将Android 3.x 版本中广泛使用的API和全息图像主题带给了小屏幕设备,因此我们说Android 4.0 是一次重要的平台发布版。
作为一名开发者,现在你拥有了单一的平台和统一的API 框架,使你可以开发,并通过一个APK 来发布你的应用程序,并且可以为运行相同版本Android(Android 4.0[API级别14]或以上版本) 的手机、平板电脑和其他设备提供优化了的用户体验。
Social APIs in Contacts ProviderUser Profile最新的android包含了一个机主的个人档案,在ContactsContract.Profile表里,通过新建一个ContactsContract.RawContacts记录,社交应用程序可以维护一个用户个人资料数据。
这个新的联系人数据表的定义不同于以往的联系人数据表的定义,你必须在CONTENT_RAW_CONTACTS_URI 表里新建1个内容。
联系人资料在这个表中被加上了"Me"标签,只能单一用户可见。
增加一个新的联系人资料需要WRITE_PROFILE权限,读取该联系人资料表需要READ_PROFILE 权限。
大多数的应用程序需要用户资料,甚至是提供数据给该资料。
但是读取用户资料是一个敏感的权限,你应该期望用户对需要读取用户资料的应用保持怀疑态度。
Invite IntentINVITE_CONTACT intent 允许一个应用按照用户意愿,邀请一个联系人进入某个社会网络的行为。
接收程序通过它邀请指定的人加入社会网络。
大部分的应用将会在这个操作的接收端。
例如,内置的people应用程序里,用户详细信息列表上列出了该用户使用的社交应用,用户可以通过社交应用上的"添加联接"按钮调用invite intent 连接两个人的社会网络。
为了让你的社交应用程序出现在“添加链接”按钮的列表里,你的应用必须提供一个同步适配器来同步你的社交网络中的联系人信息。
你必须通过对你的应用程序的同步配置文件增加inviteContactActivity 属性告知系统你的应用回应INVITE_CONTACT intent 。
activity 必须包含一个完全合格的限定名系统才会给其发送invite intent,相关activity 才会检索意图响应的数据,邀请相关的人加入社会网络或者与手机使用者建立连接。
Large photosandroid现在支持高分辨率的联系人照片,当你将一个照片放到联系人记录中的时候,系统会把它处理成96x96的缩略图(像之前那样),和一个256x256 文件形式的的显示图片(该系统选择的确切尺寸,在未来可能会有所不同)。
你能够为联系人添加一个大的照片在PHOTO列,系统会再加工成相应的缩略图显示照片记录。
Contact Usage Feedback新的 ContactsContract.DataUsageFeedback APIs 允许你追踪用户使用特定的方法联系其他人的频度,例如用户多久使用每个电话号码或邮件。
此信息有助于改善与每个人相关联的每个接触方法的排名,并提供更好的建议去联系每个人联系。
Calendar (日历) Provider新的日历API允许我们读,增加,编辑和删除存储在Calendar Provider的日历、事件与会者,提醒和警示,各种应用程序和部件可以使用这些API来读取和修改日历事件。
然而,一些最引人注目的用例的是同步适配器能够通过Calendar Provider同步其他日历服务的用户的日历,能够一所有的用户事件提供一个统一的存放位置。
例如,GOOGLE日历事件,是同步的google日历同步适配器,允许这些事件在android内置的日历软件中查看。
Event intent如果你想要做的是用户的日历添加事件,你可以使用"vnd.android.cursor.item/event"类型的ACTION_INSERT intent 开始在日历应用程序的活动,创建新的事件。
使用的意图,不需要任何权限并且您可以指定下列额外的事件的详细信息:(事件名,事件开始时间,结束时间,地点,描述,等等。
)Voicemail Provider新的V oicemail Provider允许应用程序添加语音信箱设备,使目前所有用户的语音邮件在一个单一的视觉呈现。
举个例子,很有可能,用户拥有多个语音邮件的来源,如从手机服务供应商和其他V oIP 或其他替代的语音服务之一。
这些应用可以通过V oicemail Provider APIs添加他们的语音邮箱到该手机中。
内置的Phone应用会呈现所有的语音邮箱给用户一个统一的展示。
虽然Phone应用是系统唯一的一个应用能够读取所有的语音邮件信箱,但是每个提供语音邮件服务的应用能够读他们加到系统中的邮箱(不能读其他服务的)。
由于现在的API不支持第三方应用程序去读系统中所有的语音信箱,他们能够用的api操作是他们提供给用户的语音邮箱。
Multimedia(多媒体)Android4.0增加了几个新的API ,使应用程序能够与照片,影片,和音乐等媒体交互。
Media Effects一个新的媒体效果框架,让您适用于各种图像和视频的视觉效果。
例如,图像效果框架让您可以轻松地修复红眼,将图像转换为灰度,亮度调整,调整饱和度,旋转图像,应用鱼眼镜头的效果,等等。
该效果框架执行在GPU上,以获得最大的性能。
为了最佳效果,效果框架直接应用了OpenGL的纹理,您的应用程序必须有一个有效的OpenGLcontext,才可以使用效果框架的API。
应用效果的纹理可以用于位图,视频,甚至相机。
不过,也有一定的限制,纹理必须满足:1、他们必须绑定到一个GL_TEXTURE_2D的纹理图像2、他们必须至少包含一个mipmap的级别Remote control client新RemoteControlClient允许媒体播放器,使媒体播放器能够被远程控制,如设备锁定屏幕。
媒体播放器还可以使遥控器上的显示目前正在播放的媒体,如进度信息和专辑封面的信息。
Media player1、加入网络权限就可以使媒体播放器播放网络上的音乐。
必须不要忘记加上权限。
2、允许你定义播放习惯。
Media types本次的4.0增加了支持的媒体种类:1、HTTP / HTTPS的实时流媒体协议第3版2、ADTS的原料AAC音频编码3、WEBP图像4、Matroska的视频Camera类Camera类包括用于(人脸检测和控制焦距和感光区)的API 。
face detection 人脸检测相机的应用程序现在可以提高自己的能力啦。
作为一门人脸识别的学科,不仅检测人脸特征,而且还检测眼睛和嘴巴。
如果你想要使用你的相机来做人脸识别的程序,你必须使用setFaceDetectionListener 方法来注册Camera.FaceDetectionListener对象。
然后,您可以启动您的camera surface ,并调用startFaceDetection方法开始检测人脸。
如果你实现了Camera.FaceDetectionListener接口,当系统检测到一个或者更多个人脸时,便会向所调用的接口回调onFaceDetection方法,包括一组Camera.Face 对象。
Camera.Face类的实例提供有关于人脸识别的各种各样信息,其中包括:1、一个相对与相机当前视野的所指定人脸边界的矩形框( Rect 对象)。
2、一个1到100之间并用于人脸识别精确度的整数。
每个所检测到的人脸,会分配独一无二的ID。
当识别到眼睛和嘴巴时,都会生成一个Point 对象。
该对象指定眼睛或者嘴巴的空间位置。
注意:并不是所有设备都支持人脸识别,你应该先调用getMaxNumDetectedFaces() 方法来保证返回的值大于0,说明你的设备是支持该技术的。
当然,还有一些设备可以支持人脸识别,但是不支持眼睛和嘴巴的鉴定,在这种情况下,Camera.Face 对象为空值。
焦距和感光区域照相机程序现在可以控制焦距和感光的白平衡以及自动曝光。
这两个功能使用新的Camera.Area类来指定照相所集中和所计算的出来的当前视图区域。
Camera.Area类的实例定义该视图边界的矩形区域和面积比重(相对于其他区域,该区域的重要性)。
设置焦距或感光度之前,应首先调用getMaxNumFocusAreas()或getMaxNumMeteringAreas()方法。
如果这些返回零,则该设备不支持相应的功能。
设置焦距调用setFocusAreas() 方法;设置感光度调用setMeteringAreas()方法;这两种方法每次会返回包含所对应焦距或者感光度的Camera.Area 对象列表(List)。
例如,你可以实现一个功能,允许用户设置通过触摸一个预览区域,您再转化到重点领域Camera.Area对象和要求,重点放在该区域的场景,相机。
在现场的面积变化,在这一领域的重点或曝光将不断更新。
摄像头自动对焦现在,您可以启用连续自动对焦(CAF)拍照。
为了使你的照相程序调用连续自动对焦功能,需要传递FOCUS_MODE_CONTINUOUS_PICTURE参数到setFocusMode()方法中。
当准备拍摄照片,调用autoFocus()方法。
Camera.AutoFocusCallback对象便立即收到一个回调来指示是否获得到了焦点。
接受到回调值后,如果还需要重新自动对焦,则必须调用cancelAutoFocus()方法。
注意:连续自动对焦功能支持视频拍摄,使用FOCUS_MODE_CONTINUOUS_VIDEO参数。
可以参考sdk9版本。
摄像头的其他功能在录制视频时,您可以调用takePicture()方法保存照片,同时不中断视频的拍摄。
但是,在这样做之前,你应该调用isVideoSnapshotSupported()方法来以确保硬件是否支持这个功能。
使用setAutoExposureLock()和setAutoWhiteBalanceLock()方法可以锁定自动曝光和白平衡来防止用户更改这些属性。
相机拍摄运行时,可以调用setDisplayOrientation()方法。
在以前的版本中,你只能在运行之前使用,但现在你可以在任何时候改变方向。
相机广播意图Camera.ACTION_NEW_PICTURE :这表明用户已经占据了新的照片。