Android training+guide 随笔
文章平均质量分 85
dapangzao
这个作者很懒,什么都没留下…
展开
-
Service详解
一、Serviceservice是一个可以在后台长时间运行操作而不提供用户界面的应用组件。形式:启动:当组件通过startService()启动服务,即处于启动状态。启动之后,服务可以在后台一直运行,即使启动服务的组件已被销毁也不受影响。一般服务通常只执行单一操作,而且不会讲结果返回给调用方。启动服务要实现onStartCommand()回调。绑定:当组件通过bindService原创 2017-03-24 13:51:53 · 468 阅读 · 0 评论 -
Android资源使用详解
一、资源访问Android编译时,aapt工具将生成R类,res/目录中所有资源id都在该类中,并且每个资源类型都有相应的R子类。资源id由两部分组成,资源类型,如string,drawable等,以及资源名称,一般是文件扩展名,如果是简单值就是android:name的属性名称。访问资源有两种方式:代码中,用R.资源类型.资源名。如,R.string.hello;XML中,用于R原创 2017-04-01 14:14:17 · 367 阅读 · 0 评论 -
Android系统权限(含6.0的运行时权限)
一、Android权限介绍:Android在访问受限的沙盒中运行应用,因此其访问沙盒外的资源是受到限制的(包括读写用户的私有数据(如联系人或电子邮件)、读写其他应用程序的文件、执行网络访问、使设备保持唤醒状态)。在6.0之前,应用在安装时,其所请求的权限都被授予,这样的话就会造成一些不必要的权限的授予,否则无法安装使用。在6.0之后,引入了运行时权限机制,即对于那些危险(涉及用户隐私)的权限,原创 2017-03-21 16:43:32 · 328 阅读 · 0 评论 -
Activity任务栈与启动模式
一、Task与返回栈。Task是指一系列的Activity,这些Activity按照各自的打开顺序排列在堆栈(返回栈)中。按返回键可以从返回栈中弹出响应的Activity,直到返回主屏幕为止。当所有Activity都从堆栈中移除之后,任务就不复存在了。当切换应用时,或者切换到主屏幕,Task都会切换到后台,如果再切回应用,则Task切回前台。但是如果后台同时运行多个Task,系统可能会原创 2017-03-22 16:25:58 · 390 阅读 · 0 评论 -
IntentService使用详解
一、IntentService1.概述部分新手会认为(我刚开始也是这么认为的),Service因为不用于与用户直接交互,所可以直接处理比较耗时的操作,比如网络连接等。其实不然,Service虽然不与用户交互,但是其仍是运行在主线程中,因此,Service如果操作时间过长,则会出现ANR。为了解决这个问题,Android官方给出了一个新的Service,用于处理长时间的后台任务,即Inten原创 2017-06-19 09:49:44 · 457 阅读 · 0 评论 -
Android资源分组及匹配详解
资源:代码中使用到的文件,静态文本。包括位图,布局文件,字符串,动画等等。开发中,应当外部化资源,如图像和字符串,有利于维护资源。同时必要时也可以为不同设备提供支持。一、资源分组1.默认资源:MyProject/ src/ MyActivity.java res/ drawable/ graph原创 2017-04-01 09:32:14 · 1878 阅读 · 0 评论 -
Canvas与Drawable绘制图形
一、图形展示Android中提供两种方式来绘制图形到view上。1.将Drawable(包括图片、动画等)绘制到view对象如图片,图形,动画等,适用于一些实现简单且不需要动态改变的图形,比如动画,shape等。Drawable是可绘制图形的抽象。其可以定义各种可绘制图形,包括ShapeDrawable、BitmapDrawable等等。当然也可以自定义一些drawable对象。原创 2017-04-18 15:01:59 · 10210 阅读 · 0 评论 -
Android对话框使用详解
一、dialog对话框是提示用户做出决定或输入额外信息的小窗口。Dialog类是对话框的基类,但应避免直接实例化Dialog,而应选择以下三种:AlertDialog:可显示标题、最多三个按钮、可选则列表项或自定义布局;(直接在此使用Edittext可能无法输入文本,需要自定义实现Dialog)DatePickerDialog:选择日期的预定义UI;TimePickerDi原创 2017-04-11 10:34:05 · 730 阅读 · 0 评论 -
Android动画之属性动画
一、属性动画属性动画是Android提供的一个强大的框架,可以用于任何随时间而变化的对象,不论是否是View。包含以下特征:持续时间(Duration):可以用于指定动画持续时间,默认300ms;时间插值:用于指定当前已用时间,属性值的计算方式;重复计数和行为:指定动画完成时是否要重复以及要重复的次数,还可以指定是否反向执行动画;动画集合:可以组合一组动画,并指定其同时播放原创 2017-04-17 11:34:28 · 329 阅读 · 0 评论 -
软键盘输入最佳实践
这章记录下Android软键盘的使用1.指定输入的文本类型在EditText中指定android:inputType,比如指定为password,即为密码,会不可见明文。 看一下可以指定的输入类型: 常量(xml中使用) 代码中设置值 描述 date TYPE_CLASS_DATETIME | TYPE_DATETIME_VARIATION_DATE原创 2017-06-30 10:35:00 · 587 阅读 · 0 评论 -
管理系统UI(StatusBar、NavigationBar)
这章讲讲常用的系统UI管理,包括StatusBar,NavigationBar。一、概览在看到这块时,感觉很常用,就记下来了。主要就是系统操作栏的隐藏、显示等操作。做工精细的app会对这些有要求。相关名词:StatusBar,状态栏,即顶部的一小块显示网络,电量,应用通知图标等的区域。NavigationBar,导航栏,即底部的有返回,home等操作按钮的区域,有的没有。像华为原创 2017-05-27 17:03:11 · 688 阅读 · 0 评论 -
Android通知(Notification)使用详解
一、通知(Notification)通知是可以在应用常规UI外部向用户显示的消息。通常使用NotificationCompat.Builder对象构建UI信息和操作,调用NotificationCompat.Builder.build()返回具体的Notification对象,最后通过调用NotificationManager.notify()将Notification对象传递给系统。N原创 2017-04-11 11:38:28 · 2675 阅读 · 0 评论 -
AIDL详解
一、ADIL介绍AIDL(Android 接口定义语言)。可以定义客户端与服务使用IPC进行交互通信时都认可的编程接口。Android中无法访问另一个进中的内存。尽管如此,远程需要将其对象分解为操作系统能够识别的原语,并将对象编组成跨越边界的对象。编写执行这一编组操作的代码是繁琐的,因此Android会使用AIDL来处理。注意:只有允许不同应用的客户端用IPC方式访问服务,且要在服务中处理原创 2017-03-28 10:42:28 · 1163 阅读 · 0 评论 -
Android4.4(KITKAT API19)之后文件URI解析
前言这个月app改版,忙了大半个月。最近在想,之前写的博客有部分都是笔记,纯粹是为了记笔记。我想这样大家看起来有时甚至觉得云里雾里的。以后写博客,尽量就是按照为大家解决问题的方式来写,当然笔记肯定还是会有,但是会尽量解释清楚大概的用途,贴近实际的操作,能让大家从中有收获。一、从相册中选择照片这个需求,大家都不陌生,比如做个人中心时拍照或者从相册选择图片。代码也很简单:package com.exam原创 2017-08-25 16:10:57 · 822 阅读 · 0 评论 -
多屏幕最佳实践
一、概览Android支持不同屏幕尺寸和密度,系统会将界面调整为适合的屏幕尺寸,同时也可以针对特定的屏幕进行支持。但是为了有更好的用户体验,开发者应当针对不同尺寸和密度进行优化。1.相关概念屏幕尺寸:屏幕对角测量的实际物理尺寸。方便起见,Android将所有屏幕尺寸分为4种通用尺寸:小、正常、大和超大;屏幕密度:屏幕物理区域中的像素量,通常称为dpi(每英寸点数)。分为6种通用密度原创 2017-05-24 09:57:54 · 331 阅读 · 0 评论 -
Android数据存储
本文主要讲述各种存储方式,基本都是常用的。在此进行记录。一、存储1.概述Android提供了多种方式来持久化数据,以及提供对数据的安全保护。主要包括:1)SharePreference:用于保存键值对;2)内部存储:在内部存储器中保存私有数据;3)外部存储:在共享外部存储中存储公共数据;4)SQLite数据库:在私有数据库中存储结构化数据;5)网络连接:在网络服务器原创 2017-05-19 16:00:28 · 353 阅读 · 0 评论 -
Android无缝设计
一、Android无缝设计尽管我们自己的应用可以独立的设计很好,但是还是要考虑到系统及其他应用对自己应用的干扰,比如,一些意外的dialog提示,数据丢失,线程死锁等等。常见的就是其他应用的一些后台进程会弹出一些奇怪的东西,会让你的应用突然失去焦点。当然我们自己的应用也要考虑这一点。通常情况下,我们设计应用时,应当采用Notification而不是直接弹出的形式来通知用户事件发生而不是打断原创 2017-05-25 09:58:08 · 299 阅读 · 0 评论 -
隐式Intent匹配规则
intent匹配规则原创 2017-03-16 16:29:37 · 1309 阅读 · 0 评论 -
隐式Intent使用细节及常用Intent收藏
Intent使用相关细节原创 2017-03-16 21:04:20 · 388 阅读 · 0 评论 -
Activity生命周期分析
生命周期的图就不上了,到处都是。一、关键生命周期回调应该做的事情。1)onCreate():首次创建 Activity 时调用。 在此方法中执行所有正常的静态设置 — 创建视图、将数据绑定到列表等等;2)onStart():在 Activity 即将对用户可见之前调用。进行一些BroadcastReceiver的绑定操作以及对界面显示有影响的操作;3)onResume():在 Ac原创 2017-03-21 13:31:03 · 239 阅读 · 0 评论 -
Fragment使用详解
一、fragment:Fragment 表示 Activity 中的行为或用户界面部分。可以将片段视为 Activity 的模块化组成部分,它具有自己的生命周期,能接收自己的输入事件,并且可以在 Activity 运行时添加或移除片段。其引入目的是在不同尺寸的设备中灵活的使用,如手机上,用列表和详情在两个Activity中使用,但在pad中可以使用左侧列表,右侧详情的activity。生命原创 2017-03-22 10:48:13 · 337 阅读 · 0 评论 -
绑定Service专题
一、绑定服务绑定服务时客户端-服务器接口中的服务器。绑定服务可让组件绑定到服务、发送请求、接受响应,甚至执行进程间通信(IPC)。绑定服务只在为其他应用组件服务时处于活动状态,不会一直在后台运行。绑定服务仍是Service类的实现,可让其他应用绑定,通过实现onBind()回调方法,返回IBinder对象作为客户端与服务进行交互的接口。客户端通过bindService()绑定到服务。调原创 2017-03-24 16:56:37 · 342 阅读 · 1 评论 -
Android进程和线程
一、进程和线程当某应用组件启动且该应用没有运行其他任何组件时,Android系统会使用单个执行线程为应用启动新的Linux进程。默认情况下,同一应用内的所有组件运行在相同的进程和线程中,即主线程。但是可以指定应用中的组件在单独的进程运行,并为任何进程创建额外线程。二、进程四大组件均可以通过android:process属性,指定其运行的进程。还可以使一些组件共享进程。此外,使不同应用的原创 2017-03-30 15:43:10 · 282 阅读 · 0 评论 -
ContentProvider使用详解
一、ContentProviderContentProvider:内容提供程序,提供安全的数据访问机制,支持跨进程通信(IPC),主要用于像别的应用提供数据。通过Context中ContentResolver对象作为客户端来与contentprovider进行通讯,一般就是对其数据的CRUD操作。Android本身提供了音频、视频、图像和个人联系信息的contentprovider。con原创 2017-03-23 16:39:39 · 1508 阅读 · 0 评论 -
View动画、Drawable动画
一、View动画View动画即补间动画。补间动画通过起始和终止的位置等属性计算动画。补间动画可以对View对象的内容进行简单的转换,如位置,大小,旋转,透明度。如果View有背景也会随之变化。可以使用XML或代码中定义View动画。推荐用XML,比硬编码方式更具可读性以及可重用行。View动画可以指定动画方式,开始时间,持续时间,顺序还是同步的。XML文件放在res/anim中原创 2017-04-18 11:47:15 · 259 阅读 · 0 评论 -
Android复制粘贴详解
一、复制与粘贴框架1.概览Android提供了一个基于剪切板的复制粘贴框架。支持字符串、复杂数据结构、文本与二进制数据流,以及应用assets的剪切。只有文本可直接存储到剪切板,其他存储为content provider。剪切板支持Text、URI、Intent三种形式的剪切对象。看到这三个,就大概知道了该怎么解析出需要的数据了。剪切板一次仅存储一个剪切对象,再存储另一个,之前的则会消失。原创 2017-05-19 10:46:26 · 23217 阅读 · 0 评论 -
Android 多媒体相关
本文是介绍关于Android多媒体的使用的文章,总结于官方文档。拍照会另外写一篇博客。一、MediaPlayerMediaPlayer是安卓multimedia framework提供的用于播放多媒体的类。可以用于播放音频,视频等多媒体文件。支持应用raw资源内的文件、本地文件系统中的文件以及网络上获取的数据流。下面讲讲使用。1.mediaplayerMediaPlayer类是me原创 2017-05-11 17:03:08 · 368 阅读 · 0 评论 -
Android碎片化以及兼容性问题的研究
一、碎片化问题:众所周知,随着Android的发展,最让一般程序员头疼的就是碎片化的问题,碎片化包括,语言碎片化,平台版本碎片化,设备尺寸碎片化,以及设备功能碎片化(某些传感器等)的问题。1.语言碎片化:1)创建语言目录,以及对应的字符串文件,如:res/values/strings.xml、res/values-es/strings.xml、res/values-zh-rCN/str原创 2017-03-21 15:27:16 · 631 阅读 · 0 评论 -
Android拍照与录视频
本文讲解用已有的相机应用进行拍照与录像操作。而非自定义相机。一、拍照1.检查相机应用是否存在一般的应用需要拍照的地方不多,最多的莫过于头像,拍照或者选择文件上传。因此不需要自己实现一个相机那么复杂。只需要启动相机应用来拍照然后处理图像即可。为了防止设备没有相机应用而导致崩溃,因此要进行检测。static final int REQUEST_IMAGE_CAPTURE = 1;原创 2017-03-16 21:20:15 · 430 阅读 · 0 评论 -
WebView使用
一、WebView1.概述WebView是View的子类,用于在布局中部分展现网页。常用的地方,比如购物app,商品详情页面,就可以使用WebView。2.使用布局:<WebView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/webview" and原创 2017-05-22 13:51:57 · 397 阅读 · 0 评论 -
FileProvider文件共享
本文是在查看Android文档关于拍照与文件共享知识,看到关于FileProvider相关内容后,尝试使用并遇到一些问题时决定做的笔记。一、FileProvider1.FileProvider的出现Android7.0之前,使用file://URI通常会给出该文件的全部访问权限,这是不安全的,应该只有应用自己才有权限。在7.0之后,为了更好的保护用户隐私,不再使用file://URI来原创 2017-05-18 11:46:35 · 3917 阅读 · 0 评论