安卓复习之旅
lin_t_s
厚积而薄发
展开
-
安卓复习之旅—Shader相关类的方法
转自:http://www.cnblogs.com/menlsh/archive/2012/12/09/2810372.html 在Android中,提供了Shader类专门用来渲染图像以及一些几何图形。 Shader类包括了5个直接子类,分别为:BitmapShader、ComposeShader、LinearGradient、RadialGradient以及SweepGradient。其中,B转载 2016-12-10 11:38:24 · 310 阅读 · 0 评论 -
安卓复习之旅—自定义view(一)
今天开始复习一下自定义view相关的知识。 先上图看看效果吧: 额 好像奥运五环那几个字没有居中。。。先这样吧(嘿嘿)开始coding吧: step1定义需要自定义的属性 在res/values/文件夹创建一个attrs.xml文件,在里面编辑需要的自定义属性<?xml version="1.0" encoding="utf-8"?><resources> <attr name=原创 2016-12-24 15:34:47 · 305 阅读 · 0 评论 -
安卓复习之旅—自定义view(二)
今天来看一下继承自ViewGroup的自定义view;看看效果先: 有点像垂直方向的viewpager吧,下面来一步一步实现它吧。 step1声明需要的一些成员变量 // 屏幕高度 private int mScreenHeight; private int mScrollStart; private int mScrollEnd; // 移动时的Y距离原创 2016-12-25 16:16:43 · 304 阅读 · 0 评论 -
安卓复习之旅—观察者模式
2016年最后一天,因公司性质,元旦继续上班,春节早一些放假,额…祝各位元旦快乐!!! 接下来复习一下Java的一些设计模式,今天先来看看观察者模式: 按照图谱一步一步来实现吧 step1定义被观察者接口/** * 定义被观察者接口 * * @author Administrator * */public interface IObservered { /**原创 2016-12-31 16:33:33 · 422 阅读 · 3 评论 -
安卓复习之旅—工厂模式(一)
今天来复习一下Java设计模式中的工厂模式,工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪个类。包含几下几种形态:简单工厂模式,又称静态工厂模式;工厂方法模式抽象化模式简单工厂模式 简单工厂模式是类的创建模式,根据传入的参数决定生产怎样的产品,结构如下: 简单工厂模式包含工厂角色、抽象产品角色和具体产品角色; 下面以一个水果的例子来说明简单工厂模式:首先设计水果的生命原创 2017-01-01 11:54:06 · 373 阅读 · 0 评论 -
安卓复习之旅—工厂模式(二)
上一篇博客说到简单的工厂模式不适合层级多的产品,我们需要用到工厂模式中的工厂方法模式来完成,那什么是工厂方法模式呢,跟着我一步一步认识它吧; 工厂方法模式是定义一个创建产品对象的工厂接口,将时间实际创建工作推迟到子类中。 工厂方法模式的结构: 抽象接口(creator):工厂方法模式的核心,与应用程序无关的,任何模式中创建对象的工厂类必须实现这个接口。具体工厂(concretecreator)原创 2017-01-01 16:26:58 · 331 阅读 · 0 评论 -
安卓复习之旅——消息机制
概述 安卓的消息机制主要是指handler的运行机制以及handler所附带的messageQueue和looper的工作过程,之所以会出现handler主要是因为安卓不允许非UI线程进行UI操作,这个在viewrootimpl中的checkThread()方法中进行了验证:void checkThread() { if (mThread != Thread.currentThre原创 2017-02-17 17:33:59 · 675 阅读 · 0 评论 -
安卓复习之旅—Binder工作机制
Binder是Android中的一个类,实现了IBinder接口。从IPC角度Binder是Android中的一种跨进程通信方式;从Android framework角度来说,Binder是servicemanager连接各种manager(activitymanager、windowmanager…)的桥梁;从Android应用层来说,Binder是客户端和服务器进行通信的媒介,当bindserv原创 2017-02-18 14:53:30 · 1025 阅读 · 0 评论 -
安卓复习之旅—JavaGC机制
转自:http://inotgaoshou.iteye.com/blog/757470概述 因为在之前的内存优化 博客中已经提到了Java的内存区域,而垃圾回收是针对堆内存而言的,所以就把堆内存再深入的讲一下,然后再讲GC机制;堆内存模型 堆内存由垃圾回收器的自动内存管理系统回收,分为两大部分:新生代和老年代。老年代主要存放应用程序中生命周期长的存活对象。新生代又分为三个转载 2016-12-10 11:12:27 · 993 阅读 · 1 评论 -
安卓复习之旅—View的工作流程1
本篇文章主要是回顾一下安卓中view的工作原流程,view的工作流程主要包含measure、layout和draw三大流程,在进入主题之前,先要理解一下几个概念,以便更好的理解view的三大流程;了解ViewRoot和DecorView ViewRoot对应ViewRootImpl类,实现了ViewParent接口,它是连接WindowManager和DecorView的桥梁,WindowMana原创 2017-02-23 14:39:03 · 804 阅读 · 0 评论 -
安卓复习之旅—View的工作流程2
上一偏文章主要了解了一下ViewRoot和DecorView 以及MeasureSpec ,这篇文章主要讲解View的三大流程;measure过程 measure过程要分两种情况,一种是普通view,一种是viewgroup:1.view的measure view的measure方法是一个final类型的方法,意味着不能重写这个方法,在这个方法中调用了onMeasure方法,我们可以重写onM原创 2017-02-23 16:15:59 · 492 阅读 · 0 评论 -
安卓复习之旅—使用NDK进行JNI编程
jni编程是进阶必不可少的技能,今天就一起回顾一下使用NDK进行jni编程的步骤:step1.下载配置NDK具体怎么配置我就不啰嗦了,提供一个下载地址:http://pan.baidu.com/s/1mhMX70Ostep2.声明native方法新建一个类,声明native方法:/** * 声明native方法 */public class JniTest { static {原创 2017-03-02 21:39:38 · 818 阅读 · 0 评论 -
安卓复习之旅—Activity的启动流程
在日常开发中我们经常从一个Activity跳转到另一个Activity,调用的代码无非有以下两种:startActivity(intent);startActivityForResult(intent, requestCode);其实startActivity()最终也会调用startActivityForResult()来实现界面的跳转,下面我们就从startActivityForResult(原创 2017-02-24 16:48:29 · 578 阅读 · 0 评论 -
安卓复习之旅—单例模式
单例模式是开发中最常用的一种模式,sharedPreference基本上是最常用的一种,下面就来看看单例模式的几种定义方式:1、饿汉式单例类 饿汉式单例类是Java语言里最容易实现的单例类:public class EagerSingleton { private static final EagerSingleton instance = new EagerSingleton();原创 2017-01-02 16:26:25 · 319 阅读 · 0 评论 -
安卓复习之旅—工厂模式(三)
前面我们复习了工厂模式中的简单工厂模式与工厂方法模式,这次就来复习一下工厂模式中的最后一个成员—抽象工厂模式。 工厂方法模式中,我们是把工厂抽象出来了,而抽象工厂模式是在此基础上把产品抽象出来,结构如下图: 理论知识就不多说了,直接上代码,还是以水果为例子,现在的需求是引进了大鹏种植技术,需要在大棚里种植热带与亚热带的水果,蔬菜; 定义产品接口 分为水果和蔬菜两种水果/** * 水原创 2017-01-02 11:37:45 · 364 阅读 · 0 评论 -
安卓复习之旅—raw和assets文件夹的作用,区别
二者所位于的位置 raw包含在res目录下 res/raw和assets的相同点两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制assets和res/raw工程目录下都可以放一些小于1M的文件(2.3版本以前要求,否则将不能读出数据。),这些文件将被打包到APK中应用使用。res/raw和assets的不同点res/raw中的文件会被映射到R.Java文件中,原创 2016-12-09 15:32:02 · 745 阅读 · 0 评论 -
安卓复习之旅—Matrix类的方法
转自:http://www.cnblogs.com/ZSS-Android/p/3930830.html 概述 在Android中,对图片的处理需要使用到Matrix类,Matrix是一个3 x 3的矩阵,他对图片的处理分为四个基本类型:1、Translate————平移变换2、Scale ————缩放变换3、Rotate ————旋转变换4、Skew ————错切变换1.转载 2016-12-10 11:46:35 · 463 阅读 · 0 评论 -
安卓复习之旅—Java反射机制
Java反射机制定义 Java反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 用一句话总结就是反射可以实现在运行时可以知道任意一个类的属性和方法。反射机制的优点与缺点 为什么要用反射机制?直接创建对象不就可以了吗,这就涉及到了动态与静态原创 2016-12-05 10:08:03 · 314 阅读 · 0 评论 -
安卓复习之旅—Java集合类
Collection接口 该接口的子类主要有List和Set,区别主要是List保存的对象可以重复,而Set不可以重复; 一、List 实现主要有ArrayList、LinkedList、Vector ArrayList - 最大的特点就是提供了Add、Get操作,当然可以通过迭代器来遍历,对于元素的存在可以通过contains方法判断。 LinkedList - 作为一种双向原创 2016-12-07 10:00:59 · 326 阅读 · 0 评论 -
安卓复习之旅—hashCode() 和equals()
hashCode() 和equals() 区别和作用 主要围绕一下4点进行总结 1 equals() 的作用是什么? 2 equals() 与 == 的区别是什么? 3 hashCode() 的作用是什么? 4 hashCode() 和 equals() 之间有什么联系?equals() 的作用是什么? equals() 定义在JDK的Object.java中。通过判断两个对象的地址是否原创 2016-12-04 18:00:01 · 663 阅读 · 0 评论 -
安卓复习之旅—Thread、Runnable、Callable、Futrue类关系与区别
开启一个线程有三种方式定义:Thread、Runnable、Callable,其中Runnable实现的是void run()方法,Callable实现的是 V call()方法,并且可以返回执行结果,其中Runnable可以提交给Thread来包装下,直接启动一个线程来执行,而Callable则一般都是提交给ExecuteService来执行。public interface Callable<V原创 2016-12-07 11:29:50 · 594 阅读 · 0 评论 -
安卓复习之旅—String相关
String的不可变性 指的是一个String对象一旦生成,就在堆内存中占有一定的内存,它就一直存在,不变,直到没有被其他对象引用,就被垃圾回收掉,对String对象重新赋值,操作只是新增对象到堆内存中;StringBuilder和StringBuffer的区别StringBuilder和StringBuffer都可以对字符串进行拼接; 其中StringBuilder:线程非安全的 String原创 2016-12-07 11:52:22 · 305 阅读 · 0 评论 -
安卓复习之旅—Java多线程同步
为什么使用多线程 因为当我们有多个线程要同时访问一个变量或对象时,如果这些线程中既有读又有写操作时,就会导致变量值或对象的状态出现混乱,从而导致程序异常。先看看没有用同步方法的代码:package threadTest;public class Bank { private int count =0;//账户余额 //存钱 public void addMoney(原创 2016-12-07 16:53:05 · 262 阅读 · 0 评论 -
安卓复习之旅—JDK中默认提供的线程池
主要有一下4种线程池 一、newFixedThreadPool创建一个指定工作线程数量的线程池。每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中。二、newCachedThreadPool创建一个可缓存的线程池。这种类型的线程池特点是:1.工作线程的创建数量几乎没有限制(其实也有限制的,数目为Interger. MAX_VALUE), 这样可原创 2016-12-07 17:13:04 · 325 阅读 · 0 评论 -
安卓复习之旅—android系统层次结构
系统结构图:android系统层次结构主要包含4个层次 从上往下依次是:应用程序层(Applications)、应用程序框架层(Application Framework)、系统运行库层(Libraries和Android Runtime)和Linux内核层(Linux Kernel)。一、应用程序层 Android的应用程序主要是用户界面(User Interface)方面的,通常以JAVA程原创 2016-12-08 14:56:15 · 6272 阅读 · 0 评论 -
安卓复习之旅—Activity的启动流程
转自:http://www.cnblogs.com/bastard/archive/2012/04/07/2436262.htmlActivity框架和管理结构Activity管理的核心是AcitivityManagerService,是一个独立的进程; ActiveThread是每一个应用程序所在进程的主线程,循环的消息处; ActiveThread与AcitivityManagerServi转载 2016-12-08 20:33:54 · 431 阅读 · 0 评论 -
安卓复习之旅—多进程开发的注意事项
一、何为多进程,怎样声明? 一个应用默认只有一个进程,这个进程(主进程)的名称就是应用的包名,每个进程都有自己独立的资源和内存空间;Android多进程使用很简单,只需要在AndroidManifest.xml的声明四大组件的标签中增加”android:process”属性即可,process分私有进程和全局进程,私有进程的名称前面有冒号,全局进程没有;原创 2016-12-09 12:10:18 · 433 阅读 · 0 评论 -
安卓复习之旅—style和theme的作用及用法
转自:http://blog.csdn.net/anddlecn/article/details/51758688 概述 主题与风格是包含与被包含的关系。例如同一个主题中,按钮使用一种风格,进度条使用一种风格。可以说主题是由具备各种风格的组件组合起来的。从下面定义的主题例子中,我们可以看到这个主题里面的文字,使用的是TextAppearance.DeviceDefault风格; 这个主题里面的转载 2016-12-09 15:19:08 · 874 阅读 · 0 评论 -
常用网络开源库的特点与简单用法
今天来总结一下常用网络开源库的特点与简单用法。AsyncHttp Asynchttp 基于Apache HttpClient库;特点: 1.异步网络请求,在匿名回调中处理响应,使用简单 2.使用线程池来管理并发的网络请求 3.永久的cookie保存,内部实现用的是Android的SharedPreferences 4.库很小,所有的原创 2017-03-10 16:45:36 · 1100 阅读 · 0 评论