12 2013 档案
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/camera/videobasics.html这节课将展示如何利用现有的相机应用来录制视频。假设你的应用有一个巨大的任务,而集成视频是它的一部分。你希望尽可能简单地录制视频,并且不要因此而重新构建一个摄像的程序。幸好,Android设备上已经有了一个可以录制视频的相机应用,在这节课中,你将会让它来为你的应用服务。一). 请求相机权限要声明你的应用需要依赖摄
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/camera/photobasics.html这节课将展示如何使用已经存在的相机应用拍摄相机。假设你现在在实现一个基于人群的气象服务,它构建一个全球的气象地图,通过将运行了你的应用色设备所拍摄的天空照片拼接起来来实现这个气象地图。整合照片只是你的应用的一小部分。你希望通过最简单地方式拍摄照片,而不是需要重新构造一个相机。大多数Android设备其实已经至少
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/camera/index.html在富媒体变的流行起来之前,这个世界是单调的。还记得“Gopher”协议吗?我们也许都已经不记得了。若要让你的应用融入到用户的生活当中,就应当给用户提供一种方式让他们将自己的生活融入进来。使用相机,你的应用可以让用户增强他们所见的周围事物,制作独一无二的头像,甚至可以用来寻找僵尸,当然了,还可以简单地分享他们的生活体验。这系
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/managing-audio/audio-focus.html当用户希望从Android设备欣赏音频时,他将会有狠多选择。大多数设备有内置的喇叭,以及有线耳机的插孔,还有很多支持A2DP音频的蓝牙连接设备。一). 检查哪个硬件在被使用你的应用是如何表现的可能会被外放被引导至什么硬件设备所影响。你可以通过查询AudioManager来确定现在的音频是被引导至
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/managing-audio/audio-focus.html有很多应用会要播放音频,所以他们之间如何交互是很重要的。为了防止每个音乐播放器应用在同一时间播放,Android使用音频焦点来调整音频的播放。也就是说,只有获得了音频焦点的应用可以播放音频。在你的应用开始播放音频之前,它应该需求并接收音频焦点。另外,它应该知道如何监听音频焦点丢失的情况,并在发生
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/managing-audio/volume-playback.html一个良好的用户体验是一种可预测的。如果你的应用播放多媒体,那么很重要的一点就是你的用户可以通过他们设备上的(蓝牙耳机,耳机等等)硬件或软件音量控制方法,来调整应用的音量。一). 确定使用的是什么媒体流要创建一个可预测的音频体验,第一步是要明确你的应用要使用什么音频流。Android系统中
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/managing-audio/index.html如果你的应用播放音频,那么让用户可以以一种可预测的方式控制音频是一件很重要的事情。为了保证优秀的用户体验,还有一件同样重要的事情是,你的应用需要管理音频焦点,来保证不会出现多个应用同时播放音频的情况发生。这系列课程之后,你将能够构建一个可以响应硬件音频按键的应用,它能够在播放音频时,获取音频焦点,同时也可以
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/beam-files/receive-files.htmlAndroid Beam文件传输将文件拷贝至接收设备上的一个特殊目录。同时使用Android媒体扫描器(Android Media Scanner)扫描拷贝的文件,并为媒体文件添加对应的字段至媒体库(MediaStoreprovide)中。这节课将向你展示当文件拷贝完成时要如何响应,并且在接收设备上
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/beam-files/send-files.html这节课将向你展示如何通过Android Beam文件传输向另一台设备发送大文件。要发送文件,首先需要申明使用NFC和外部存储的权限,你需要测试一下你的设备是否支持NFC,从而能够向Android Beam文件传输提供文件的URI。使用Android Beam文件传输功能有下列要求:Android Beam
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/beam-files/index.htmlAndroid允许你通过Android Beam文件传输功能在设备之间传送大文件。这个功能键具有简单的API并允许用户通过简单地点击设备启动传送步骤。在响应过程中,Android Beam文件传输自动地将文件从一台设备拷贝至另外一台,并且在完成时告知用户。Android Beam文件传输API用来处理大量的数据,而
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/secure-file-sharing/retrieve-info.html当一个客户端应用尝试对一个有URI的文件进行操作时,应用可以向服务应用索取关于文件的信息,包括文件的数据类型和文件大小。数据类型可以帮助客户应用确定该文件自己能否处理,文件大小能帮助客户应用为文件设置合理的缓冲区。这节课将展示如何通过查询服务应用的FileProvider来获取文件
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/secure-file-sharing/request-file.html当一个希望访问由其它应用所共享的文件时,需求应用(即客户端)经常会向其它应用(服务端)发送一个文件需求。在大多数情况下,这个需求会在服务端应用启动一个Activity显示可以共享的文件。当服务应用向客户应用返回了URI后,用户即选择了文件。这节课向你展示一个客户应用如何向服务应用需求
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/secure-file-sharing/share-file.html一旦你配置了你的应用来使用URI共享文件,你可以响应其他应用关于这些文件的需求。一种响应的方法是在服务应用端提供一个文件选择接口,它可以由其他应用激活。这种方法可以允许客户应用端让用户从服务应用端选择一个文件,然后接收这个文件的URI。这节课将会向你展示如何在你的应用中创建一个用来选择文
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/secure-file-sharing/setup-sharing.html为了从你的应用安全地将一个文件发送给另一个应用,你需要配置你的应用来提供安全的文件句柄(URI的形式),Android的FileProvider组件会基于你在XML文件中的具体配置,为文件创建URI。这节课会向你展示如何在你的应用添加FileProvider的默认实现,以及如何指定
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/secure-file-sharing/index.html一个应用经常需要向其他应用发送一个甚至多个文件。例如,一个图库可能需要向图片编辑器提供多个文件,或者一个文件管理器可能希望能够允许用户在外部存储的不同区域之间复制粘贴文件。一种让应用可以分享文件的方法,是响应接收文件应用的一个文件请求。在所有情况下,唯一的一个将一个文件从你的应用发送至另一个应用的
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/sharing/shareaction.html想要在你的ActionBar中实现一个高效和用户友好的分享行为,这在Android 4.0(API Level 14)及以上中通过引入ActionProvider而变得更加简单。一个ActionProvider,一旦被添加至ActionBar中的一个项目,那么它就能处理它的外观和行为。在ShareAction
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/sharing/receive.html既然你的应用可以向其它应用发送数据,那么你的应用也可以接收来自其它应用的数据。您需要思考一下用户是如何与你的应用交互的,以及你希望接收来自其它应用什么样的数据。例如,一个社交网络应用可能会期望收到来自其它应用的文本内容,比如一个感兴趣的网页URL。而Google+ Android application即接收文本和单
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/sharing/send.html当你构造了一个intent,你需要制定你的intent将会“激活”的行为。Andriud定义了一些行为,就像你所料想的一样,这里面就有ACTION_SEND这个行为,它表明了这个intent是将一个数据从一个Activity发送至另一个Activity,甚至这一操作可能会跨进程执行。为了将数据发送中另一个activity,
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/sharing/index.htmlAndroid应用的一个强大之处在于他们相互之间的通信和整合能力。当某个功能在其它应用中已经存在了,我们又何必去重新开发这个功能呢?这系列课程包括了你如何使用IntentAPIs和ActionProvider对象来发送和接受简单数据的通用方法。课程:【Android Developers Training】 32. 向其
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/basics/intents/filters.html之前的两节课关注于故事的一面:从你的应用启动另一个应用的activity。但是如果你的应用可以执行一个对另一个应用来说有用的行为,那么你的应用就应该准备好响应由其他应用所发起的行为需求。例如,你构建了一个社交应用,它可以和用户的朋友分享信息和照片,那么此时你最感兴趣的就是支持ACTION_SEND的In
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/basics/intents/result.html启动另一个activity不一定是单向的。你也可以启动另一个Activity后,接收它返回的结果。为了接收结果,调用startActivityForResult()(而不是startActivity())。例如,你的应用可以启动一个相机App,并且接受拍摄的照片作为结果。或者,你可以启动一个“联系人”Ap
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/basics/intents/sending.htmlAndroid的一个最重的特性就是一个应用可以将用户带领到另一个应用的能力,这一切基于的是一个应用期望表现的“行为(action)”。例如,如果你的应用有一个你期望显示在地图上的地址,你不需要在你的应用中构建一个显示地图的Activity,你只需要通过使用Intent来创建一个查勘地址的需求。之后And
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/basics/data-storage/databases...
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/basics/data-storage/databases.html在数据库中保存数据,对于重复性的或者结构化的数据来说是很理想的,比如:联系人信息。这节课我们假定你对SQL数据库有一个大致的了解,并且帮助你在Android上开始使用SQLite数据库。你在Android的数据库上需要使用的APIs在android.database.sqlite包中。一)
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/basics/data-storage/files.htmlAndroid使用的文件系统和其它平台上使用的磁盘文件系统比较类似。这节课将描述如何通过File的APIs对Android文件系统进行读写文件。一个文件对象适合于按既定的顺序读或者写大量数据,而非跳跃式地进行。例如,它适合于图像文件或者任何在网络上交换的数据。这堂课将展示如何在你的应用中,执行与基
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/basics/data-storage/shared-preferences.html如果你有一些希望存储的相对较小的键值对数据集,你应该使用SharedPreferences的APIs。一个SharedPreferences对象指向一个包含键值对的文件,同时它还提供了一些简便的方法来支持写和读。每个SharedPreferences文件由框架管理并且可以
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/basics/data-storage/index.htm...
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/basics/fragments/communicating.html为了重用Fragment UI组件,你应该将每一个组件构建为自控地,模块化的组件,它们有自己的布局和行为。一旦你定义好了这些可重用的fragment,你就可以将他们与activity关联,通过应用逻辑将它们连接起来,以此实现一个整体复合的界面。你经常会希望一个fragment可以和另一个
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/basics/fragments/fragment-ui.html当你在设计你的应用时,为了支持不同的屏幕尺寸,你可以在不同的布局配置中重用你的fragment,以此在可用的屏幕空间上获得最优化的用户体验。例如,在一个手持设备上,以单一窗格每次只显示一个fragment也许是一个不错的选择。相对应的,你也许希望在屏幕更大的平板设备上并排显示多个fragme
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/basics/fragments/creating.html你可以把一个fragment看成是一个activity的模块,有着自己的生命周期,接收自己的时间输入,你可以在activity的运行阶段添加或者移除fragment(某种意义上说,像是你可以在不同activity中重用的子activity)。这堂课将会展示如何通过使用Support Library
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/basics/fragments/index.html为了...
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/basics/activity-lifecycle/recreating.html在应用被正常使用的情况下,会有一些场景发生并使得你的activity被销毁,比如:当用户按下了返回键,或者你的activity调用了finish()方法将自己销毁。当你的activity处于停止态且已经很久没有被使用的情况下,系统也会将它销毁。还有一种情况是处于前台的acti
阅读全文
摘要:注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/basics/activity-lifecycle/stopping.html正确地停止和重启你的activity在整个生命周期过程中是非常重要的,它可以让用户感觉到你的应用一直处于活跃状态,并且不会丢失他们的进度。以下是一些你的activity被停止或者被重启的例子:用户打开了最近使用过的应用窗口,并且从你的应用切换到了另一个应用。此时你的处于前台的ac
阅读全文