Android进阶
文章平均质量分 72
auiyhnlk
这个作者很懒,什么都没留下…
展开
-
【Android学习】Android控件架构
控件树:整个界面上的控件形成一个树形结构,每棵控件树的顶部都有一个ViewParent对象,所有的交互管理事件都由它来统一调度和分配。上层控件负责下层控件的测量和绘制,并传递交互事件。每一个Activity都包含一个Window对象,在Android中,这个Window对象通常有PhoneWindow来实现,PhoneWindow将一个DecorView设置为整个应用窗口的根View,原创 2016-04-05 19:18:05 · 257 阅读 · 0 评论 -
Android网络通信
一、Web通信 1.联网方式选择 Android支持通过GPRS、CDMA、WiMAX、WiFi等多种方式连接网络,每种联网模式下,都会有一些可供选择的连接点,Android对最好连接点的选择是根据不同联网方式的先验知识作出判断,优先选择通过WiFi连接网络,如果所有WiFi连接点均处于不可用状态,就会依次考虑3G网络、EDGE网络、GPRS网络,Android系统还会时刻关注连接点可用性的变化原创 2016-06-10 14:31:43 · 395 阅读 · 0 评论 -
Android消息机制和多线程
一、Android消息机制 Android消息机制主要是指Handle的运行机制,Handle是Android消息机制的上层接口,Handle的运行需要底层的MessageQueue和Looper支撑。 Handle的主要作用是将一个任务切换到指定线程去执行; MessageQueue内部存储了一组消息,以队列的形式对外提供插入和删除; Looper以无限循环的形式去查找是否有新消息,如果有原创 2016-06-11 14:50:50 · 363 阅读 · 0 评论 -
Android Studio使用
Android Studio下载地址: AndroidDevTools Android Studio中文社区 一、导入项目(工程) 1.导入一个Android Studio项目,直接Open an existing Android Studio project; 2.导入一个Eclipse项目:Import project(Eclipse ADT,Gradle etc.) 3.导入一个含原创 2016-06-06 10:17:00 · 390 阅读 · 0 评论 -
Android事件分发机制
一、View位置参数 1.top、bottom、left、right:分别表示四个顶点的原始坐标,通过getTop()、getBottom()、getLeft()、getRight()方法获取,这些坐标都是相对于父控件的相对坐标,如果要获取相对于屏幕的绝对坐标可以通过View.getLoactionOnScreen(int[])获得 2.x、y是View左上角相对于父容器的坐标,translat原创 2016-06-12 15:19:17 · 260 阅读 · 0 评论 -
Android自定义控件
一、MeasureSpec 获取测量大小:MeasureSpec.getSize(measureSpec) 获取测量模式:MeasureSpec.getMode(measureSpec) SpecMode: - UNSPECIFIED:未指定,没有限制 - EXACTLY:精确模式。对应于LayoutParams中的match_parent和具体数值两种模式; - AT_MOST:原创 2016-06-12 21:06:05 · 238 阅读 · 0 评论 -
Android Recycler的使用
为了适应RecyclerView,需要创建一个Adapter和LayoutManager 1.创建Adapter继承自RecyclerView.Adapter类,用于将数据和布局Item进行绑定。 重写onCreateViewHolder返回ViewHolder和onBindViewHolder方法和getItemCount方法, 在内部自定义ViewHolder继承RecyclerView.原创 2016-07-22 20:25:18 · 677 阅读 · 0 评论 -
多线程断点续传
一、定义UI<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="matc原创 2016-06-15 13:13:03 · 187 阅读 · 0 评论 -
【Android6.0】运行时权限
6.0以下的权限在安装的时候,根据权限声明产生一个权限列表,用户只有在同意之后才能完成app的安装,造成了我们想要使用某个app,就要默默忍受其一些不必要的权限(比如是个app都要访问通讯录、短信等)。 而在6.0以后,我们可以直接安装,当app需要我们授予不恰当的权限的时候,我们可以予以拒绝。 当然你也可以在设置界面对每个app的权限进行查看,以及对单个权限进行授权或者解除授权。 Geogl原创 2016-08-09 13:35:36 · 282 阅读 · 0 评论 -
Volley框架
Volley适用于数据量不大,但通信频繁的场景。 一、导入volley.jar 二、使用 1.创建RequestQueue对象,定义网络请求队列 一般而言,网络请求队列都是整个APP内使用的全局性对象,因此最好写入Application类中:public class MyApplication extends Application{ // 建立请求队列 public sta原创 2016-10-13 10:23:47 · 242 阅读 · 0 评论 -
Picasso使用
1.下载jar包加入项目,或者直接在build.gradle配置文件中加入compile 'com.squareup.picasso:picasso:2.5.2'注意如果你开启了混淆,你需要将以下代码添加到混淆规则文件中:-dontwarn com.squareup.okhttp.**2.简单使用 Picasso使用简单易用的接口,并有一个实现类Picasso,一个完整的功能请求至少需要三个参数;原创 2016-10-13 16:52:13 · 292 阅读 · 0 评论 -
OKHttp框架
原文地址 导入jar包或在Gradle中进行如下配置compile 'com.squareup.okhttp3:okhttp:3.3.1'或者通过maven导入<dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>3.2.0</version></de原创 2016-10-27 20:05:06 · 422 阅读 · 0 评论 -
使用AndroidStudio进行NDK开发
1.在File–>other settings–>Default Projects Settings中配置Android NDK Location 在local.properties中会生成ndk.dir=E:\android-sdk\ndk-bundle 2.在gradle.properties最后添加android.useDeprecatedNdk = true 3.在build.grad原创 2016-10-28 12:38:15 · 260 阅读 · 0 评论 -
Bitmap的加载和缓存
一、加载 由于Bitmap的特殊性和Android对单个应用的内存限制,导致加载Bitmap时很容易出现内存溢出。 BitmapFactory提供了四类方法:decodeFile、decodeResource、decodeStream、decodeByteArray,分别支持从文件系统、资源、输入流、字节数组中加载一个Bitmap对象,其中decodeFile和decodeResource又间接原创 2016-06-09 10:57:55 · 480 阅读 · 0 评论 -
【Android基础】应用资源
应用资源:XML资源文件:存储应用所需的字符串、颜色和界面样式等交互界面相关的信息。可以分成两类,一类定义为列表型xml资源文件,该类型个的每个资源文件都存储了多个资源项;另一类定义为值类型xml资源文件,该类型的每个资源文件都仅代表一个资源项;数据资源文件:应用中所需要使用的图像文件、音频文件、视频文件及其他格式的数据文件,每个数据资源文件都对应着一个资源项; 集中存放在mipmap或raw原创 2016-06-03 13:03:16 · 275 阅读 · 0 评论 -
Android屏幕适配
常见的几种屏幕分辨率: mdpi:分辨率320 * 480 ,屏幕像素密度 160dpi,设备密度1,屏幕宽度320dp; hdpi:分辨率480 * 800,屏幕像素密度240dpi,设备密度1.5,屏幕宽度320dp; xhdpi:分辨率720 * 1280,屏幕像素密度320dpi,设备密度2,屏幕宽度360dp; xxhdpi:分辨率1080 *1920,屏幕像素密度480dpi,设原创 2016-06-07 19:59:14 · 252 阅读 · 0 评论 -
【Android自定义View】测量和绘制浅析
1.View的测量在onMeasure()方法中进行,MeasureSpec类:是一个32位的int值,高两位为测量模式,低30位为测量的大小测量模式可分为三种:a.EXACTLY:精确模式,当我们将控件宽度或高度指定为具体数值时,或者"match_parent"时b.AT_MOST:最大值模式,当控件的宽度和高度指定为wrap_content时c.UNSPECIFIED:原创 2016-04-05 21:05:19 · 310 阅读 · 0 评论 -
【2016.04.11】IPC机制(一)
一、Android中的多进程模式 1.开启多进程模式 在一个应用中开启多个进程常用的方式是咋menifest文件中指定四大组件的android:process属性。 android:process的值以“:”开头是一种简写方式,默认在当前进程名前面加上应用包名,其次以“:”开头的进程是应用的私有进程,其它应用的组件不能跑在该进程当中; 进程名完整的进程属于全局进程,其它应用的组件可以通过Sh原创 2016-04-11 10:45:02 · 269 阅读 · 0 评论 -
【2016年4月11日】Activity的生命周期和启动模式
一、Acitvity生命周期 1.典型情况下的生命周期:有用户参与 1)onCreate():正在创建。做一些初始化操作,如调用setContentView去加载界面布局资源、初始化Activity所需数据等。 2)onRestart():正在重新启动。Activity从不可见状态重新变为可见状态时调用,比如按Home键切换到桌面、或者打开一个新的Activity返回时。 3)onStart原创 2016-04-11 10:43:33 · 348 阅读 · 0 评论 -
【Android】IPC机制(二)
Android中的IPC方式1.使用Bundle四大组件中的三大组件都支持在Intent中传递Bundle数据,由于Bundle接口实现了Parcelable接口,可以方便地在不同进程之间传输,传输的数据必须可以序列化,如基本数据类型、实现了Parcelable接口的对象,实现了Serialiable接口的对象等。2.使用文件共享适合用在对数据同步要求不高的进程之间进行通信原创 2016-04-12 11:59:05 · 249 阅读 · 0 评论 -
View事件体系(一)基础概念
一、View的位置参数: 1.top、left、bottom、right:View四个顶点的坐标,都是相对坐标,相对于View的父容器的坐标;分别通过getTop,getLeft,getBottom,getRight来获取 View的宽度:width = right - left; View的高度:height = bottom - top; 2.x,y:View左上角的坐标,相对于父容器而原创 2016-04-17 12:09:27 · 218 阅读 · 0 评论 -
View事件体系(二)View的滑动
常用的三种滑动方式:scrollTo/scrollTo:操作简单,适合对View内容的滑动;动画:操作简单,主要适用于没有交互的View和实现复杂动画效果;改变布局参数:操作稍微复杂,适用于有交互的View。 1.scrollTo:移动的是View的内容,并不是View本身 getScrollX、getScrollY:View左(上)边缘和View内容左(上)边缘水平(竖直)方向的距离。原创 2016-04-17 15:31:53 · 304 阅读 · 0 评论 -
View的事件分发机制
事件分发机制:事件传递给某View,调用该View的dispatchTouchEvent方法,在该方法内部调用onInterceptTouchEvent方法,返回true,表示拦截,调用onTouchEvent方法,返回true,表示消耗该事件,返回false表示不处理该事件,交给父View的onTouchEvent方法处理;返回false,表示不拦截,将事件继续向下传递给子View,调用子View原创 2016-04-17 18:20:18 · 252 阅读 · 0 评论 -
View工作原理
measure过程决定View的宽/高,measure完成后,可以通过getMeasuredWidth和getMeasuredHeight获取View测量后的宽/高;layout过程决定View四个顶点的坐标和实际的宽和高,layout完成后,可以通过getLeft,getTop等方法获得四个顶点的位置和getWidth,getHeight方法获得View实际的高度和宽度;原创 2016-04-18 16:15:49 · 255 阅读 · 0 评论 -
RemoteViews和PendingIntent
RemoteViews提供了一组操作用于跨进程更新界面,在Android中主要应用在通知栏和桌面小部件。 使用系统默认样式弹出通知栏Notification.Builder builder = new Notification.Builder(this); builder.setSmallIcon(R.mipmap.ic_launcher); builder.se原创 2016-04-19 10:06:05 · 472 阅读 · 0 评论 -
Android的Drawable
Drawable一般都是通过xml文件定义的,也可以通过代码来创建具体的Drawable对象。通过getIntrinsicWidth和getIntrinsicHeight这两个方法可以获取到Drawable的内部宽/高,一张图片形成的Drawable的内部宽/高就是图片的宽/高,但是一个颜色所形成的Drawable就没有内部宽/高的概念,内部宽/高不等于它的大小。 1.Bitmap 通过xml描原创 2016-04-19 14:01:50 · 256 阅读 · 0 评论 -
Android动画
补间动画set标签对应AnimationSet类,它的两个属性: - android:interpolator:动画集合所采用的插值器,控制动画的播放过程,默认为@android:anim/acceletate_decelerate_interpolator(加速减速插值器); 时间插值器:根据时间流逝的百分比计算出当前属性值改变的百分比,系统预置的有LinearInterpolator(线原创 2016-04-19 18:45:44 · 254 阅读 · 0 评论 -
Window和WindowManager
Window是一个抽象类,Android所以的视图都是附加在Window上的,Window实际是View的直接管理者,它的具体实现是PhoneWindow,Window的具体实现位于WindowManagerService;每一个Window都对应着一个View和一个ViewRootImpl,Window是以View的形式存在的,Window和View之间通过ViewRootImpl建立联系;W原创 2016-04-20 07:40:27 · 304 阅读 · 0 评论 -
GreenDao 使用教程
在平时的开发过程中,大家一定会或多或少地接触到 SQLite。然而在使用它时,我们往往需要做许多额外的工作,像编写 SQL 语句与解析查询结果等。 所以,适用于 Android 的ORM 框架也就孕育而生了,现在市面上主流的框架有 OrmLite、SugarORM、Active Android、Realm 与 GreenDAO。 GREENDAO 设计的主要目标: - 一个精简的库 -原创 2016-11-11 21:03:24 · 434 阅读 · 0 评论