Android学习
文章平均质量分 54
dongjize
这个作者很懒,什么都没留下…
展开
-
SharedPreferences简介
获取SharedPreferences的两种方式: 1 调用Context对象的getSharedPreferences()方法 2 调用Activity对象的getPreferences()方法 两种方式的区别: 调用Context对象的getSharedPreferences()方法获得的SharedPreferences对象可以被同一应用程序下的其他组件共享. 调用Activity对转载 2015-08-08 23:12:24 · 509 阅读 · 0 评论 -
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 · 306 阅读 · 0 评论 -
Android中使用AIDL调用远程服务
AIDL,Android Interface Definition Language,安卓接口定义语言。 IPC,Inter Process Communication,进程间通讯。访问远程服务里的方法,需要用到AIDL。 绑定远程服务调用方法的步骤: 1、创建一个Service,里面有一个要被调用的方法。 2、创建一个AIDL文件IService,里面是一个接口,里面定义一个方法,用来调用原创 2015-08-18 00:02:50 · 473 阅读 · 0 评论 -
Android中的Handler机制
Handler、Looper、Message的关系在Activity创建时,UI线程中已经默认生成了一个Looper对象,用于对MessageQueue进行管理和操作。当我们初始化Handler时,它的构造方法已经从Looper对象中获取了MessageQueue。当Handler在子线程中调用sendMessage等方法发送消息时,Looper会把接收到的Message对象添加到MessageQu原创 2015-08-17 15:08:10 · 442 阅读 · 0 评论 -
使用HttpClient方式请求网络
Android中有两种基于Http的网络访问对象,一种是Java自带的HttpURLConnection,另一种是HttpClient。但是新版本的Android SDK中将不再支持HttpClient。实现步骤: 1. 定义一个HttpClient客户端对象 2. 定义方法,如HttpGet,HttpPost 3. 使用客户端执行定义的方法,返回HttpResponse响应对象 4. 使用原创 2015-08-05 17:49:21 · 406 阅读 · 0 评论 -
Android中访问HTML源码并解决编码问题
本案例功能为在输入框中输入网址并点击按钮,访问HTML源代码并显示在TextView中。为了避免服务器端编码与客户端不同,需要对返回的HTML代码内容(标签)进行判断,采用与服务端对应的编码进行解析。实现步骤: 1. 定义函数String getHtmlFromInternet(String url),用于根据给定的url访问网络,抓取html代码。函数的内容很简单,仍然是定义HttpURLCon原创 2015-08-05 16:16:56 · 618 阅读 · 0 评论 -
使用HttpURLConnection通过GET、POST请求数据
使用HttpURLConnection请求数据,通过GET和POST两种方式实现登录功能。GET请求和POST请求区别:请求参数在传递的过程中方式不同 GET提交——请求参数将会附加在请求的URL后面作为请求地址的一部分带到服务器端,可以传输的数据大小有限制一般不允许超过1K. POST提交——请求参数将会在http请求的实体内容中进行传输,这种方式传输的数据没有大小限制.NetUtils.cl原创 2015-08-05 17:34:09 · 398 阅读 · 0 评论 -
Android多线程断点下载
多线程下载,就是把服务器端的文件分成几个部分,在客户端开启同样数量的线程对文件进行下载,有利于提高下载速度。 断点下载,就是记录下载的进度,当下载中断时,再开始仍可以按原有进度继续下载。本例中,根据EditText中设置的下载访问路径以及线程数,点击按钮触发downLoad函数进行下载。 本例采用文件存储的方式来储存下载的数据。与之相比,更好的方法是采用数据库存储。public class Ma原创 2015-08-06 16:49:12 · 436 阅读 · 0 评论 -
Android中xml的序列化和解析
目的:将Person对象的id、name、age属性写成一个xml文件保存到本地,并能够读取和解析该文件。一、写xml文件到本地此过程将java对象写成xml对象,必须用到XmlSerializer。写xml文件时,常用到XmlSerializer下的几个重要方法: (1)设置输出流编码格式 setOutput(OutputStream os, String encoding) (2)写整个原创 2015-08-03 20:39:39 · 411 阅读 · 0 评论 -
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 · 447 阅读 · 0 评论 -
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 · 488 阅读 · 0 评论 -
Android手势识别
GestureDetector —— 手势识别类 sdk源代码:public class GestureDetector { public interface OnGestureListener { boolean onDown(MotionEvent e); //Touch了还没有滑动时触发 void onShowPress(MotionEve原创 2015-08-22 20:47:27 · 226 阅读 · 0 评论 -
Android网络请求中的回调
需求:高效地向服务器请求数据并解析。涉及的主要工具类: HttpManager 大哥类。最重要的类,封装了GET和POST方法。所有的参数都要经过这个类发送给服务器。 HttpRequestListener 监听接口。封装了请求状态和毁掉方法 HttpRequestVo 信使类。封装了http请求的参数。 JSONParser 解析器。HttpRequestVo 封装了Http请求中携带的参原创 2015-09-15 13:21:18 · 2572 阅读 · 1 评论 -
Android App 性能评测与调优
一、内存优化的目的以及工具介绍 内存对于移动设备来说是一种稀缺资源。 Android内存不足带来的问题:OOM;UI不流畅 内存 指标:占用,泄露多少 UI流畅度 指标:帧数,响应时间 IO 指标:阻塞式响应时间DDMS工具(Eclipse环境) Heaps Heap size Allocated Allocation Tracke原创 2015-09-15 23:55:08 · 312 阅读 · 0 评论 -
Android开源框架Volley的使用
一、概述 Volley是google发布的一款android网络通信库,它适合效率要求较高场景以及并发场景。它有如下特点:通信更快、更简单、更健壮。开发效率会得到很大提升,稳定性也会很高。 GET、POST请求及网络图像的高效率异步处理可以对网络请求进行排序和优先级处理。网络请求的缓存。多级别取消请求。和Activity生命周期的联动。当activity销毁时,可通过不适合网络数据的原创 2015-09-04 12:56:08 · 397 阅读 · 0 评论 -
Android中windowSoftInputMode属性详解
android:windowSoftInputMode activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。 这个属性能影响两件事情: 【一】当有焦点产生时,软键盘是隐藏还是显示 【二】是否减少活动主窗口大小以便腾出空间放软键盘 它的设置必须是下面列表中的一个值,或一个”state…”值加一个”adjust…”值的组合。在任一组设置转载 2015-10-13 22:11:22 · 310 阅读 · 0 评论 -
SQLite的事务操作
sqlite中常常需要对大量数据批量操作。若使用for循环方法,效率较低。因为 sqlite操作数据的时候默认一条语句就是一个事务,有多少条数据就有多少次磁盘操作。10000条记录就要进行10000次读写磁盘操作,而且不能保证所有数据都能成功操作。(有可能部分成功,另外一部分失败,后续还得删除。太麻烦) 解决方法: 添加事务处理,把10000条数据操作作为一个事务。这样可大幅度提高操作速度,往往原创 2015-08-04 13:09:07 · 915 阅读 · 0 评论 -
Android中加载网络图片到本地
本案例中,将会实现通过HttpURLConnection对象的方法,将指定url的网络图片加载到本地,并显示在预设的ImageView中。主要实现步骤: 1. 新建一个方法private Bitmap getImageFromNet(String url),传入图片的url字符串,据此创建一个URL对象mURL。 2. 利用mURL的openConnection()方法,初始化一个HttpURL原创 2015-08-04 20:07:38 · 384 阅读 · 0 评论 -
AsyncTask异步加载
异步任务——AsyncTask 1. 用处: 将耗时操作放在非主线程中执行,既保证了Android单线程模型,也保证了程序的响应(不出现ANR) AsyncTask在子线程中更新UI,封装、简化异步操作 2. AsyncTask <\Params, Progress, Result> 是一个抽象类,通常用于被继承,继承AsyncTask需要指定如下三个泛型参数: Params:启动任务时原创 2015-08-08 11:32:46 · 246 阅读 · 0 评论 -
Android应用知识架构清单
基础是一门语言的基石,掌握了基础才能致用,对于一门语言包含哪些基础知识点我们更应该了然于胸,想了解熟知Android应用开发,那么就要了解它对应的内容。 1.基础篇 主要包括界面布局、Form表单、富媒体以及一些高级自定义控件和布局layout、引用数据value及图片drawable、动画anim等 R资源 1)布局 RelativeLayout,Line转载 2015-08-08 13:58:36 · 372 阅读 · 0 评论 -
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 · 731 阅读 · 0 评论 -
Service的两种调用方法
一、startService开启服务生命周期如下: onCreate()–> onStartCommand() —> onDestory();如果服务已经开启,不会重复的执行onCreate(), 而是会调用onStartCommand()。服务停止的时候调用onDestory()。服务只会被停止一次。下面是一个电话窃听器的实例: 在Manifest文件中配置必要的权限和组件。设置一个监听开机原创 2015-08-08 16:24:30 · 2250 阅读 · 0 评论 -
加载大图片到Android内存
Android系统默认分配给每个程序最大16m的运行内存,因此加载大图片常常造成内存溢出。为此,应该对大图片进行压缩操作来减小内存消耗。本案例中,将大图片的尺寸压缩至屏幕尺寸。思路很简单,只要事先计算好缩放比scale,接着实例化一个option对象:BitmapFactory.Options opts = new Options(),然后调用opts.inSampleSize = scale方法,原创 2015-08-08 18:29:36 · 287 阅读 · 0 评论 -
Android多媒体编程(待续)
加载大图片Android模拟器默认为每个应用分配的堆内存空间是16M,当加载大图片时,加载图片需要的内存空间不是按图片的大小来算的,而是按像素点的多少来算的。图片加载到内存中需要把每一个像素都加载到内存中,所以对内存的要求非常高, 一不小心就会造成OOM(OutOfMemoryError)内存溢出致命错误。假设:当前有一张图片,大小仅为1M,但是其规格为3648*2736,现在需要加载此图片总像素数原创 2015-08-22 23:13:37 · 399 阅读 · 0 评论 -
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 · 427 阅读 · 0 评论 -
Android四大组件之ContentProvider
ContentProvider的作用 1) ContentProvider为存储和读取数据提供了统一的接口 2) 使用ContentProvider,应用程序可以实现数据共享 3) android内置的许多数据都是使用ContentProvider形式,供开发者调用的(如视频,音频,图片,通讯录等)ContentProvider简介 当应用继承ContentProvider类,并重写该类用于原创 2015-08-22 13:01:59 · 400 阅读 · 1 评论 -
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 · 233 阅读 · 0 评论 -
Fragment实现Tabhost效果(未完)
用Fragment的方法来实现传统的底部tabhost效果。 步骤: 1. 创建tabhost线性布局文件,以及每个fragment的布局文件;对每个tabitem都新建一个Fragment类,在类中重写onCreateView()方法,加载各fragment布局文件。 2. 在MainActivity中实例化各Fragment,并创建FragmentManager和FragmentTrans原创 2015-08-12 14:17:48 · 509 阅读 · 0 评论 -
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 · 338 阅读 · 0 评论 -
Android中保存数据到sd卡
目标: 模拟一个QQ登陆界面,当CheckBox勾选时,将第一次输入的QQ号和密码存至SD卡,下次打开app可自动显示。 关键步骤: 1. 添加一个UtilsSD业务类,用于处理数据的存储和获取,方法分别为saveUserInfo()和getUserInfo()。 数据存储的逻辑: (1)判断SD卡是否挂载,若没有挂载则返回false。 (2)若挂载,初始化SD卡原创 2015-08-03 14:55:20 · 840 阅读 · 0 评论 -
Android中的测试
冒烟测试: adb shell monkey -p<程序的包名> -v<事件的数量>Junit测试: Android程序是不能写main方法运行的,需要建立测试项目。 Junit测试步骤: 1、创建测试项目,定义工程名,选择要测试的工程 2、创建测试类,该类继承AndroidTestCase,编写相应逻辑 3、在清单文件中添加指令 在manifest节点下配置:<instrumen原创 2015-08-16 17:38:17 · 410 阅读 · 0 评论 -
清除缓存功能
文章转自: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 · 272 阅读 · 0 评论 -
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 · 676 阅读 · 0 评论 -
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 · 866 阅读 · 0 评论