- 博客(45)
- 问答 (1)
- 收藏
- 关注
原创 Introduction to `libphonenumber`
###Introduction to `libphonenumber`-----####libphonenumber`libphonenumber` is Google's common Java, C++ and JavaScript library for parsing, formatting, and validating international phone numbers.Maven...
2018-03-15 20:20:12
298
原创 Android Material Design简介
一、Material Design简介Material Design理念介绍 http://www.uisdc.com/comprehensive-material-design-note Design Support Library介绍 http://blog.leancloud.cn/3306/?utm_source=tuicool 1.核心思想 Material desi
2016-03-15 16:57:11
853
转载 Android中windowSoftInputMode属性详解
android:windowSoftInputMode activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。 这个属性能影响两件事情: 【一】当有焦点产生时,软键盘是隐藏还是显示 【二】是否减少活动主窗口大小以便腾出空间放软键盘 它的设置必须是下面列表中的一个值,或一个”state…”值加一个”adjust…”值的组合。在任一组设置
2015-10-13 22:11:22
298
原创 认识观察者模式
六大方面目标与观察者之间的关系 一个观察者–多个目标 多个观察者–一个目标单项依赖 观察者依赖目标,而不是目标依赖观察者。观察者始终处于被动地位,等待目标传值。命名建议 目标接口–后面跟Subject 观察者接口–后面跟Observer 观察者接口更新方法–建议为update触发通知的时机 一般是完成了状态维护后出发。不能够先通知,后改变状态。观察者模式的调用顺序通知的顺序
2015-09-28 00:17:28
321
转载 Android中的Canvas和Paint类
在Android中需要通过graphics类来显示2D图形。 graphics中包括了Canvas(画布)、Paint(画笔)、Color(颜色)、Bitmap(图像)等常用的类。graphics具有绘制点、线、颜色、2D几何图形、图像处理等功能。 1.Color(颜色)类 Android系统中颜色的常用表示方法有以下3种: (1)int color = Color.BLUE; (2)in
2015-09-27 19:21:54
478
转载 关于Java的File.separator
在Windows下的路径分隔符和Linux下的路径分隔符是不一样的,当直接使用绝对路径时,跨平台会暴出“No such file or diretory”的异常。比如说要在temp目录下建立一个test.txt文件,在Windows下应该这么写: File file1 = new File (“C:\tmp\test.txt”); 在Linux下则是这样的: File file2 = new
2015-09-20 22:55:15
240
转载 java生成UUID通用唯一识别码 (Universally Unique Identifier)
UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OSF) 的组织在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部份。UUID 的目的,是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要
2015-09-20 22:21:10
422
原创 Android App 性能评测与调优
一、内存优化的目的以及工具介绍 内存对于移动设备来说是一种稀缺资源。 Android内存不足带来的问题:OOM;UI不流畅 内存 指标:占用,泄露多少 UI流畅度 指标:帧数,响应时间 IO 指标:阻塞式响应时间DDMS工具(Eclipse环境) Heaps Heap size Allocated Allocation Tracke
2015-09-15 23:55:08
300
原创 Android网络请求中的回调
需求:高效地向服务器请求数据并解析。涉及的主要工具类: HttpManager 大哥类。最重要的类,封装了GET和POST方法。所有的参数都要经过这个类发送给服务器。 HttpRequestListener 监听接口。封装了请求状态和毁掉方法 HttpRequestVo 信使类。封装了http请求的参数。 JSONParser 解析器。HttpRequestVo 封装了Http请求中携带的参
2015-09-15 13:21:18
2556
1
原创 Android开源框架Volley的使用
一、概述 Volley是google发布的一款android网络通信库,它适合效率要求较高场景以及并发场景。它有如下特点:通信更快、更简单、更健壮。开发效率会得到很大提升,稳定性也会很高。 GET、POST请求及网络图像的高效率异步处理可以对网络请求进行排序和优先级处理。网络请求的缓存。多级别取消请求。和Activity生命周期的联动。当activity销毁时,可通过不适合网络数据的
2015-09-04 12:56:08
381
原创 Android多媒体编程(待续)
加载大图片Android模拟器默认为每个应用分配的堆内存空间是16M,当加载大图片时,加载图片需要的内存空间不是按图片的大小来算的,而是按像素点的多少来算的。图片加载到内存中需要把每一个像素都加载到内存中,所以对内存的要求非常高, 一不小心就会造成OOM(OutOfMemoryError)内存溢出致命错误。假设:当前有一张图片,大小仅为1M,但是其规格为3648*2736,现在需要加载此图片总像素数
2015-08-22 23:13:37
386
原创 Android手势识别
GestureDetector —— 手势识别类 sdk源代码:public class GestureDetector { public interface OnGestureListener { boolean onDown(MotionEvent e); //Touch了还没有滑动时触发 void onShowPress(MotionEve
2015-08-22 20:47:27
216
原创 Android四大组件之ContentProvider
ContentProvider的作用 1) ContentProvider为存储和读取数据提供了统一的接口 2) 使用ContentProvider,应用程序可以实现数据共享 3) android内置的许多数据都是使用ContentProvider形式,供开发者调用的(如视频,音频,图片,通讯录等)ContentProvider简介 当应用继承ContentProvider类,并重写该类用于
2015-08-22 13:01:59
389
1
原创 Android中的md5加密
算法步骤: 1. 将输入的密码字符串转换为字节码,用每个byte去和11111111做与运算并且得到的是int类型的值: byte & 11111111; 2. 把int 类型转成 16进制并返回String类型; 3. 不满八个二进制位就补全;public class Md5Utils { /** * md5加密方法 * @param pas
2015-08-21 15:49:07
437
原创 Java基础——反射(待续)
JAVA反射机制是在运行状态中, 对于任意一个类(class文件), 都能够知道这个类的所有属性和方法; 对于任意一个对象, 都能够调用它的任意一个方法和属性; 这种动态获取的信息以及动态调用对象方法的功能称为java语言的反射机制。动态获取类中信息, 就是java反射。 可以理解为对类的解剖。如果想要对指定名称的字节码文件进行加载并获取其中的内容并调用, 这时就使用到了反射技术。得到各字节码对应的
2015-08-20 00:05:45
300
原创 Android中使用AIDL调用远程服务
AIDL,Android Interface Definition Language,安卓接口定义语言。 IPC,Inter Process Communication,进程间通讯。访问远程服务里的方法,需要用到AIDL。 绑定远程服务调用方法的步骤: 1、创建一个Service,里面有一个要被调用的方法。 2、创建一个AIDL文件IService,里面是一个接口,里面定义一个方法,用来调用
2015-08-18 00:02:50
457
原创 Android中的Handler机制
Handler、Looper、Message的关系在Activity创建时,UI线程中已经默认生成了一个Looper对象,用于对MessageQueue进行管理和操作。当我们初始化Handler时,它的构造方法已经从Looper对象中获取了MessageQueue。当Handler在子线程中调用sendMessage等方法发送消息时,Looper会把接收到的Message对象添加到MessageQu
2015-08-17 15:08:10
430
原创 Android中的ListView及其优化(待续)
Adapter代码public class SpotsAdapter extends BaseAdapter{ private List<SpotsModel> mList; private LayoutInflater inflater; public SpotsAdapter(Context context,List<SpotsModel> list){
2015-08-17 00:36:47
665
转载 清除缓存功能
文章转自:http://www.cnblogs.com/rayray/p/3413673.html/* * 文 件 名: DataCleanManager.java * 描 述: 主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录 */import java.io.File;import android.content.
2015-08-16 21:43:50
265
原创 Android中的测试
冒烟测试: adb shell monkey -p<程序的包名> -v<事件的数量>Junit测试: Android程序是不能写main方法运行的,需要建立测试项目。 Junit测试步骤: 1、创建测试项目,定义工程名,选择要测试的工程 2、创建测试类,该类继承AndroidTestCase,编写相应逻辑 3、在清单文件中添加指令 在manifest节点下配置:<instrumen
2015-08-16 17:38:17
394
原创 Android知识点清单(不断更新)
I、入门Android架构(5层:Linux内核,Libraries,Dalvik VM,Application Framework,Application)Dalvik VM和传统JVM的区别DDMS的使用Android工程目录结构Android程序安装打包过程ADB http://www.cnblogs.com/devinzhang/archive/2011/12/17/22913
2015-08-16 16:46:48
417
原创 Java基础——网络编程(待续)
网络通讯基本三要素: 1、IP地址 2、端口号 3、传输协议(UDP、TCP等)UDP 将数据及源和目的封装在数据包中,不需要建立连接。每个数据包的大小限制在64K内。因无连接,是不可靠协议。速度快。 应用:聊天工具、在线视频等TCP 建立连接,形成传输数据的通道。 在连接中进行大数据量传输,通过三次握手完成连接,是可靠协议。效率稍低。 应用:FTP(文件传输协议)TCP/IP模型:
2015-08-15 17:16:44
299
原创 Java设计模式之——装饰模式(待续)
当想要对已有的对象进行功能增强时,可以定义类,将已有对象传入,基于已有的功能,并提供加强功能。那么自定义的该类称为装饰类。装饰类和原来的类常常属于同一个接口。装饰类通常会通过构造方法接收被装饰的对象,并给予被装饰的对象的功能提供更强的功能。//原有的类class Person { public void eat() { System.out.println("吃饭");
2015-08-14 21:27:42
246
原创 Java基础——I/O流简介(待续)
IO流用来处理设备之间的数据传输。流按流向分为:输入流、输出流。 输入流、输出流相对于内存设备而言。将外设中的数据读取到内存:输入;将内存的数据写入到外设中:输出。流按操作数据不同分为两种:字节流、字符流字节流:通用流。 字符流:基于字节流。由来:字节流读取文字字节数据后,不直接操作而是先查指定的编码表,获取对应的数字,在对该文字进行操作。 ASCII:英文编码表 GB2312/GBK
2015-08-14 20:38:40
372
原创 Java基础——多线程(待续)
一、开启多线程的两种方法1、继承Thread类,在子类中重写run()方法,然后直接创建该类对象用start开启线程。class ThreadChild extends Thread { public void run(){ //要实现的代码块 }}new ThreadChild().start();new ThreadChild().start();2、定义一
2015-08-14 13:40:55
321
原创 Java设计模式之——单例模式
单例模式解决的问题:保证一个类在内存中的对象唯一性。如何保证对象唯一性? 答:1、为了避免其他程序多次建立该类对象,不允许其他程序用new创建该类对象。 2、为了让其它程序可以访问到该类对象,在该类创建一个本类实例。 3、为了方便其它程序对自定义对象的访问,对外提供一个方法让其他程序可以获取该对象。步骤: 1、用private私有化该类构造函数。 2、通过new在本类中创建一个本类对象。
2015-08-13 22:59:39
260
原创 Android自定义控件——侧滑菜单(待完善)
侧滑菜单实质上是一个含有两个子item的ViewGroup,第一个item是menu,第二个item是content。简易demo的实现代码:activity_main.xml<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.androi
2015-08-12 22:36:04
328
原创 Fragment实现Tabhost效果(未完)
用Fragment的方法来实现传统的底部tabhost效果。 步骤: 1. 创建tabhost线性布局文件,以及每个fragment的布局文件;对每个tabitem都新建一个Fragment类,在类中重写onCreateView()方法,加载各fragment布局文件。 2. 在MainActivity中实例化各Fragment,并创建FragmentManager和FragmentTrans
2015-08-12 14:17:48
501
原创 Android中的动画(待续)
MainActivity.javapublic class MainActivity extends Activity { private ImageView iv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
2015-08-11 19:35:25
295
原创 WebView的应用
实例一:简易浏览器。public class MainActivity extends Activity { private EditText et_address; private WebView webView; private ProgressDialog pd; @Override protected void onCreate(Bundle savedI
2015-08-11 19:02:15
224
转载 SharedPreferences简介
获取SharedPreferences的两种方式: 1 调用Context对象的getSharedPreferences()方法 2 调用Activity对象的getPreferences()方法 两种方式的区别: 调用Context对象的getSharedPreferences()方法获得的SharedPreferences对象可以被同一应用程序下的其他组件共享. 调用Activity对
2015-08-08 23:12:24
501
原创 加载大图片到Android内存
Android系统默认分配给每个程序最大16m的运行内存,因此加载大图片常常造成内存溢出。为此,应该对大图片进行压缩操作来减小内存消耗。本案例中,将大图片的尺寸压缩至屏幕尺寸。思路很简单,只要事先计算好缩放比scale,接着实例化一个option对象:BitmapFactory.Options opts = new Options(),然后调用opts.inSampleSize = scale方法,
2015-08-08 18:29:36
279
原创 Service的两种调用方法
一、startService开启服务生命周期如下: onCreate()–> onStartCommand() —> onDestory();如果服务已经开启,不会重复的执行onCreate(), 而是会调用onStartCommand()。服务停止的时候调用onDestory()。服务只会被停止一次。下面是一个电话窃听器的实例: 在Manifest文件中配置必要的权限和组件。设置一个监听开机
2015-08-08 16:24:30
2227
转载 Android应用知识架构清单
基础是一门语言的基石,掌握了基础才能致用,对于一门语言包含哪些基础知识点我们更应该了然于胸,想了解熟知Android应用开发,那么就要了解它对应的内容。 1.基础篇 主要包括界面布局、Form表单、富媒体以及一些高级自定义控件和布局layout、引用数据value及图片drawable、动画anim等 R资源 1)布局 RelativeLayout,Line
2015-08-08 13:58:36
364
原创 AsyncTask异步加载
异步任务——AsyncTask 1. 用处: 将耗时操作放在非主线程中执行,既保证了Android单线程模型,也保证了程序的响应(不出现ANR) AsyncTask在子线程中更新UI,封装、简化异步操作 2. AsyncTask <\Params, Progress, Result> 是一个抽象类,通常用于被继承,继承AsyncTask需要指定如下三个泛型参数: Params:启动任务时
2015-08-08 11:32:46
237
原创 Android使用xUtils方便地下载 / xUtils介绍
xUtils是一个Android开源框架,功能强大,其中就包含了多线程断点下载的功能。默认线程数为3。 下面是一个下载方法实例,点击按钮触发该方法: public void download(View view){ String path = et_path.getText().toString().trim(); if(TextUtils.isEmpty(p
2015-08-08 00:31:20
719
原创 Android多线程断点下载
多线程下载,就是把服务器端的文件分成几个部分,在客户端开启同样数量的线程对文件进行下载,有利于提高下载速度。 断点下载,就是记录下载的进度,当下载中断时,再开始仍可以按原有进度继续下载。本例中,根据EditText中设置的下载访问路径以及线程数,点击按钮触发downLoad函数进行下载。 本例采用文件存储的方式来储存下载的数据。与之相比,更好的方法是采用数据库存储。public class Ma
2015-08-06 16:49:12
429
原创 使用HttpClient方式请求网络
Android中有两种基于Http的网络访问对象,一种是Java自带的HttpURLConnection,另一种是HttpClient。但是新版本的Android SDK中将不再支持HttpClient。实现步骤: 1. 定义一个HttpClient客户端对象 2. 定义方法,如HttpGet,HttpPost 3. 使用客户端执行定义的方法,返回HttpResponse响应对象 4. 使用
2015-08-05 17:49:21
392
原创 使用HttpURLConnection通过GET、POST请求数据
使用HttpURLConnection请求数据,通过GET和POST两种方式实现登录功能。GET请求和POST请求区别:请求参数在传递的过程中方式不同 GET提交——请求参数将会附加在请求的URL后面作为请求地址的一部分带到服务器端,可以传输的数据大小有限制一般不允许超过1K. POST提交——请求参数将会在http请求的实体内容中进行传输,这种方式传输的数据没有大小限制.NetUtils.cl
2015-08-05 17:34:09
388
原创 Android中访问HTML源码并解决编码问题
本案例功能为在输入框中输入网址并点击按钮,访问HTML源代码并显示在TextView中。为了避免服务器端编码与客户端不同,需要对返回的HTML代码内容(标签)进行判断,采用与服务端对应的编码进行解析。实现步骤: 1. 定义函数String getHtmlFromInternet(String url),用于根据给定的url访问网络,抓取html代码。函数的内容很简单,仍然是定义HttpURLCon
2015-08-05 16:16:56
611
空空如也
SQL查询使用两个COUNT,结果变为两个COUNT的乘积,求高人解释!
2014-12-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人