摘要: 1、一、collection (有序)接口的实现的接口 set list其中set接口的实现类是HashSet,List接口的实现类是ArrayList、LinkList、Vector二、Map(无序)接口的实现类是HashMap、HashTableArrayList和Vector都是使用数组方式存... 阅读全文
posted @ 2015-06-15 21:57 叫我程某某 阅读(1615) 评论(0) 推荐(0)
摘要: 最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了。 下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方。 1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担... 阅读全文
posted @ 2015-06-15 21:48 叫我程某某 阅读(201) 评论(0) 推荐(0)
摘要: android开发中,在java2ee或者android中常用的数据结构有Map,List,Set,但android作为移动平台,有些api(很多都是效率问题)显然不够理想,本着造更好轮子的精神,android团队编写了自己的api用来代替java apiSimpleArrayMap与ArrayMa... 阅读全文
posted @ 2015-06-15 21:45 叫我程某某 阅读(608) 评论(0) 推荐(0)
摘要: 1. 批量写入,采用事物方式,先缓存数据,再批量写入数据,极大提高了速度288条,直接inset into 耗时7秒8640条, 批量写入 耗时5-7秒[java]view plaincopytry{this.myDataBase.beginTransaction();//手动设置开始事务for... 阅读全文
posted @ 2015-06-15 21:43 叫我程某某 阅读(1784) 评论(0) 推荐(0)
摘要: Android优化 最常见的就是ListView, Gallery, GridView, ViewPager 的大数据优化 图片优化 访问网络的优化优化的原则: 数据延迟加载 分批加载 本地缓存数据优化 1).复用contentview 2).创建static class ViewH... 阅读全文
posted @ 2015-06-15 21:42 叫我程某某 阅读(229) 评论(0) 推荐(0)
摘要: 1.获取状态栏高度:decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView有个getWindowVisibleDisplayFrame方法可以获取到程序显示的区域,包括标题栏,但不包括状态栏。于是,我们就可以算出状态栏的高度了。[ja... 阅读全文
posted @ 2015-06-15 21:34 叫我程某某 阅读(1640) 评论(0) 推荐(0)
摘要: 在网上看了不少文章,发现还是官方文档介绍最详细,把重要的东西简单摘要出来。详细可看官方文档地址 (http://www.bangchui.org/read.php?tid=9 ) 。在应用中显示图片,如果不多加小心,很容易就会使应用因为异常“java.lang.OutofMemoryError:bi... 阅读全文
posted @ 2015-06-15 21:33 叫我程某某 阅读(2143) 评论(0) 推荐(0)
摘要: 加载一张图片到UI相对比较简单,如果一次要加载一组图片,就会变得麻烦很多。像ListView,GridView,ViewPager等控件,需要显示的图片和将要显示的图片数量可能会很大。 为了减少内存使用,这类控件都重复利用移出屏幕的子视图,如果你没有持用引用,垃圾回收器也会回收你加载过的图片。... 阅读全文
posted @ 2015-06-15 21:31 叫我程某某 阅读(471) 评论(0) 推荐(0)
摘要: 在“加载大图”文章中提到的BitmapFactory.decode*方法,如果源数据是在磁盘、网络或其它任何不是在内存中的位置,那么它都不应该在UI线程中执行。因为它的加载时间不可预测且依赖于一系列因素(磁盘读写速度、图片大小、CPU频率等)。如果在主线程中执行这个操作,一旦它阻塞了主线程,就... 阅读全文
posted @ 2015-06-15 21:30 叫我程某某 阅读(477) 评论(0) 推荐(0)
摘要: //压缩图片大小 public static Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(... 阅读全文
posted @ 2015-06-15 21:28 叫我程某某 阅读(343) 评论(0) 推荐(0)
摘要: 高效地利用线程1.在后台取消一些线程中的动作我们知道App运行过程中所有的操作都默认在主线程(UI线程)中进行的,这样App的响应速度就会受到影响。会导致程序陷入卡顿、死掉甚至会发生系统错误。为 了加快响应速度,需要把费时的操作(比如网络请求、数据库操作或者复杂的计算)从主线程移动到一个单独的线程中... 阅读全文
posted @ 2015-06-15 21:12 叫我程某某 阅读(147) 评论(0) 推荐(0)
摘要: 线程池的基本思想还是一种对象池的思想,开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理。当有线程任务时,从池中取一个,执行完成后线程对象归池,这样可以避免反复创建线程对象所带来的性能开销,节省了系统的资源。比如:一个应用要和网络打交道,有很多步骤需要访问网络,为了不... 阅读全文
posted @ 2015-06-15 21:05 叫我程某某 阅读(190) 评论(0) 推荐(0)
摘要: 前言 Android的消息传递机制是另外一种形式的“事件处理”,这种机制主要是为了解决Android应用中多线程的问题,在Android中不 允许Activity新启动的线程访问该Activity里的UI组件,这样会导致新启动的线程无法改变UI组件的属性值。但实际开发中,很多地方需要在 工作线程中... 阅读全文
posted @ 2015-06-15 21:00 叫我程某某 阅读(197) 评论(0) 推荐(0)
摘要: 本文介绍Android中的5种数据存储方式。 数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1使用SharedPreferences存储数据 2文件存储数据 3SQLite数据库存储数据 4使用ContentProvider存储数据 5网络存储数... 阅读全文
posted @ 2015-06-15 20:54 叫我程某某 阅读(380) 评论(0) 推荐(0)
摘要: Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦。组件按照布局的要求依次排列,就组成了用户所看见的界面。 所有的布局方式都可以归类为ViewGroup的5个类别,即ViewGroup的5个直接子类。其它的一些布局都扩展自这5个类。1.Linea... 阅读全文
posted @ 2015-06-15 20:48 叫我程某某 阅读(185) 评论(0) 推荐(0)
摘要: Android的基本组件 1.Activity Activity 是最基本的模块,一般称之为“活动”,在应用程序中一般一个Activity就是一个单独的屏幕。每一个活动都被实现为一个独立的类,并且从活动基类中继 承而来,活动类将会显示由视图控件组成的用户接口,并对事件作出响应。Activity利用... 阅读全文
posted @ 2015-06-15 20:37 叫我程某某 阅读(1110) 评论(0) 推荐(0)
摘要: 1 简介 Android多点触控在本质上需要LCD驱动和程序本身设计上支持,目前市面上HTC、Motorola和Samsung等知名厂商只要使用电容屏触控原理的手机均可以支持多点触控Multitouch技术,对于网页缩放、手势操作上有更好的用户体验。 在Android平台上事件均使用了Moti... 阅读全文
posted @ 2015-06-15 20:29 叫我程某某 阅读(251) 评论(0) 推荐(0)
摘要: 下面是一个两点触控的案例代码:package com.zzj;import android.app.Activity;import android.os.Bundle;import android.view.MotionEvent;public class AndroidTestActivity e... 阅读全文
posted @ 2015-06-15 20:27 叫我程某某 阅读(252) 评论(0) 推荐(0)
摘要: 在SDK的Tools文件夹下包含着Android模拟器操作的重要命令ADB,ADB的全称为Android Debug Bridge,就是调试桥的作用,借助这个工具,我们可以管理设备或手机模拟器的状态,还可以进行以下的操作:(1)快速更新设备或手机模拟器中的代码,如应用或Android系统升级; (2... 阅读全文
posted @ 2015-06-15 20:25 叫我程某某 阅读(325) 评论(0) 推荐(0)
摘要: 在SDK的Tools文件夹下包含着Android模拟器操作的重要命令adb,adb的全称为Android Debug Bridge,就是调试桥的作用 在SDK的Tools文件夹下包含着Android模拟器操作的重要命令adb,adb的全称为Android Debug Bridge,就是调试桥的作用。... 阅读全文
posted @ 2015-06-15 20:24 叫我程某某 阅读(180) 评论(0) 推荐(0)
摘要: 用 Heap监测应用进程使用内存情况的步骤如下: 1. 启动eclipse后,切换到DDMS透视图,并确认Devices视图、Heap视图都是打开的; 2. 将手机通过USB链接至电脑,链接时需要确认手机是处于“USB调试”模式,而不是作为“Mass Storage”; 3. 链接成功后,在D... 阅读全文
posted @ 2015-06-15 20:03 叫我程某某 阅读(154) 评论(0) 推荐(0)
摘要: 1.单元测试概念 单元测试(又称为模块测试),检验程序模块(软件设计的最小单位)正确性的测试工作,常常是程序员写的一段代码。对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法。 android中的测试框架是扩展的junit3,所以在学习android的单元测试... 阅读全文
posted @ 2015-06-15 20:01 叫我程某某 阅读(153) 评论(0) 推荐(0)
摘要: 在Android中,菜单被分为如下三种,选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和子菜单(SubMenu)。1. 选项菜单(OptionsMenu)详解 Activity中需要覆盖的常用的方法: public boolean onCreateOptionsMenu(... 阅读全文
posted @ 2015-06-15 20:00 叫我程某某 阅读(213) 评论(0) 推荐(0)
摘要: 在Android平台上可以使用SimpleAPIfor XML(SAX) 、 Document Object Model(DOM)和Android附带的pull解析器解析XML文件。 下面是本例子要解析的XML文件:itcast.xml 李明 30 李向梅 25... 阅读全文
posted @ 2015-06-15 19:57 叫我程某某 阅读(209) 评论(0) 推荐(0)
摘要: 1.Widget设计步骤 需要修改三个XML,一个class: 1)第一个xml是布局XML文件(如:main.xml),是这个widget的。一般来说如果用这个部件显示时间,那就只在这个布局XML中声明一个textview就OK了。 2)第二个xml是widget_provider.xml... 阅读全文
posted @ 2015-06-15 19:54 叫我程某某 阅读(267) 评论(0) 推荐(0)
摘要: Android游戏当中主要的除了控制类外就是显示类View。SurfaceView是从View基类中派生出来的显示类。android游戏开发中常用的三种视图是:view、SurfaceView和GLSurfaceView。 View:显示视图,内置画布,提供图形绘制函数、触屏事件、按键事件函数等;... 阅读全文
posted @ 2015-06-15 19:51 叫我程某某 阅读(500) 评论(0) 推荐(0)
摘要: 1.概念 SurfaceView是View类的子类,可以直接从内存或者DMA等硬件接口取得图像数据,是个非常重要的绘图视图。它的特性是:可以在主线程之外的线程中向屏幕绘图上。这样可以避免画图任务繁重的时候造成主线程阻塞,从而提高了程序的反应速度。在游戏开发中多用到SurfaceView,游戏中的... 阅读全文
posted @ 2015-06-15 19:50 叫我程某某 阅读(355) 评论(0) 推荐(0)
摘要: 1.案例一布局文件: 主程序:public class SurfaceActivity extends Activity implements SurfaceHolder.Callback { /** Called when... 阅读全文
posted @ 2015-06-15 19:48 叫我程某某 阅读(852) 评论(0) 推荐(0)
摘要: 1.概念及扩展 VideoView 是android 系统提供的一个媒体播放显示和控制的控件。其结构层次如下: 原型:VideoViewextendsSurfaceViewimplementsMediaController.MediaPlayerControl 类结构: java.l... 阅读全文
posted @ 2015-06-15 19:45 叫我程某某 阅读(538) 评论(0) 推荐(0)
摘要: 1.背景介绍 最近项目要绘制股票走势图,并绘制能够跟随手指滑动的指示线(Indicator)来精确查看股票价格和日期。如下图所示: 上图中的那条白色直线就是股票的指示线,用来跟随手指精确确定股票的时间和股票价格。不论是绘制股票图还是绘制指示线,我们首先想到的就是用Android中的自定义View... 阅读全文
posted @ 2015-06-15 19:43 叫我程某某 阅读(1801) 评论(1) 推荐(0)
摘要: 一、SQLite简介在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型虽然只有五种,但实际上sqlite3也接受varchar(n)、char(... 阅读全文
posted @ 2015-06-15 19:41 叫我程某某 阅读(292) 评论(1) 推荐(1)
摘要: 1.建表优化SQLite的数据库本质文件读写操作,频繁操作打开和关闭是很耗时和浪费资源的;优化方法事务机制:这里要注意一点:事务的开启是要锁定DB的,其他对DB的写入操作都是无法成功的。db.beginTransaction(); //手动设置开始事务try {//这里写你数据操作db.setTra... 阅读全文
posted @ 2015-06-15 19:39 叫我程某某 阅读(231) 评论(0) 推荐(0)
摘要: SharedPreferences是Android中存储简单数据的一个工具类。可以想象它是一个小小的Cookie,它通过用键值对的方式把简单数据类型(boolean、int、float、long和String)存储在应用程序的私有目录下(data/data/包名/shared_prefs/)自己... 阅读全文
posted @ 2015-06-15 19:33 叫我程某某 阅读(168) 评论(0) 推荐(0)
摘要: import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; public class PermissionActivity extends Activity... 阅读全文
posted @ 2015-06-15 19:31 叫我程某某 阅读(2406) 评论(0) 推荐(0)
摘要: 一、当Acitivity和Service处于同一个Application和进程时,通过继承Binder类来实现。 当一个Activity绑定到一个Service上时,它负责维护Service实例的引用,允许你对正在运行的Service进行一些方法调用。比如你后台有一个播放背景音乐的Service,... 阅读全文
posted @ 2015-06-15 19:29 叫我程某某 阅读(222) 评论(0) 推荐(0)
摘要: 使用Messenger 上面的方法只能在同一个进程里才能用,如果要与另外一个进程的Service进行通信,则可以用Messenger。 其实实现IPC(Inter-Process Communication,进程间通信)的方式,还有AIDL,但推荐使用Messenger,有两点好处: 1. 使用... 阅读全文
posted @ 2015-06-15 19:28 叫我程某某 阅读(562) 评论(0) 推荐(0)
摘要: 在编写Android应用程序时,我们一般将一些计算型的逻辑放在一个独立的进程来处理,这样主进程仍然可以流畅地响应界面事件,提高用户体验。Android系统为我们提供了一个Service类,我们可以实现一个以Service为基类的服务子类,在里面实现自己的计算型逻辑,然后在主进程通过startServ... 阅读全文
posted @ 2015-06-15 19:26 叫我程某某 阅读(861) 评论(0) 推荐(0)
摘要: Thread和Service的区别:1)Thread 是程序执行的最小单元,它是分配CPU的基本单位,可以用 Thread 来执行一些异步的操作。如果是Local Service,那么对应的 Service 是运行在主进程的 main 线程上的。如果是RemoteService,那么对应的 Se... 阅读全文
posted @ 2015-06-15 19:14 叫我程某某 阅读(256) 评论(0) 推荐(0)
摘要: 1.JSON概念: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性,从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。 JSON可以将Java对象转成json格式的字符串,可以将json字符串转换成Java。比XML更轻量级,Json... 阅读全文
posted @ 2015-06-15 19:13 叫我程某某 阅读(198) 评论(0) 推荐(0)
摘要: 1.简介: XML:extensible markup language,一种类似于HTML的语言,他没有预先定义的标签,使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。具体的可以问Google或百度。相比之JS... 阅读全文
posted @ 2015-06-15 19:10 叫我程某某 阅读(942) 评论(0) 推荐(0)
摘要: 大家好我们这一节讲的是Android Handler的使用,在讲Handler之前,我们先提个小问题,就是如何让程序5秒钟更新一下Title.首先我们看一下习惯了Java编程的人,在不知道Handler的用法之前是怎么样写的程序,代码如下所示:package com.android.tutor; ... 阅读全文
posted @ 2015-06-15 19:09 叫我程某某 阅读(121) 评论(0) 推荐(0)
摘要: 方法一:(java习惯,在android平台开发时这样是不行的,因为它违背了单线程模型)刚刚开始接触android线程编程的时候,习惯好像java一样,试图用下面的代码解决问题 new Thread( new Runnable() { public void run() { ... 阅读全文
posted @ 2015-06-15 19:07 叫我程某某 阅读(366) 评论(0) 推荐(0)
摘要: 直接上代码:public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); HandlerThread hThread=new HandlerThread("... 阅读全文
posted @ 2015-06-15 19:05 叫我程某某 阅读(136) 评论(0) 推荐(0)
摘要: AsyncTask和Handler对比1 ) AsyncTask实现的原理,和适用的优缺点AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.使... 阅读全文
posted @ 2015-06-15 19:04 叫我程某某 阅读(154) 评论(0) 推荐(0)
摘要: 1.适用场景1) ContentProvider为存储和读取数据提供了统一的接口2) 使用ContentProvider,应用程序可以实现数据共享3) android内置的许多数据都是使用ContentProvider形式,供开发者调用的(如视频,音频,图片,通讯录等)2.相关概念介绍1)Conte... 阅读全文
posted @ 2015-06-15 18:26 叫我程某某 阅读(244) 评论(0) 推荐(0)
摘要: setContentView:1.常用的构造函数: 1)setContentView(int layoutResID) 2)setContentView(View view) 3)setContentView(View view, ViewGroup.LayoutParams params)2... 阅读全文
posted @ 2015-06-15 18:25 叫我程某某 阅读(371) 评论(0) 推荐(0)
摘要: 1、新建一个Activity,并把各个生命周期打印出来2、运行Activity,得到如下信息onCreate--> onStart--> onResume-->3、按crtl+f12切换成横屏时onSaveInstanceState--> onPause--> onStop--> onDestroy... 阅读全文
posted @ 2015-06-15 18:23 叫我程某某 阅读(130) 评论(0) 推荐(0)
摘要: 一.Intent的介绍Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完... 阅读全文
posted @ 2015-06-15 18:20 叫我程某某 阅读(554) 评论(0) 推荐(0)
摘要: 官方文档的解释是:Context提供了关于应用环境全局信息的接口。它是一个抽象类,它的执行被Android系统所提供。它允许获取以应用为特征的资源和类型。同时启动应用级的操作,如启动Activity,broadcasting和接收intents。 常用的Context的子类是Activity和Se... 阅读全文
posted @ 2015-06-15 18:14 叫我程某某 阅读(197) 评论(0) 推荐(0)
摘要: Android的invalidate与postInvalidate都是用来刷新界面的,用法区别在于: 1)invalidate():实例化一个Handler对象,并重写handleMessage方法调用invalidate()实现界面刷新;而在线程中通过sendMessage发送界面更新消息。//... 阅读全文
posted @ 2015-06-15 18:13 叫我程某某 阅读(1642) 评论(0) 推荐(0)
摘要: 1.前言 Android中经常会遇到把View转换为Bitmap的情形,比如,对整个屏幕视图进行截屏并生成图片;Coverflow中需要把一页一页的view转换为Bitmap、以便实现复杂的图形效果(阴影、倒影效果等);再比如一些动态的实时View为便于观察和记录数据、需要临时生成静态的Bitma... 阅读全文
posted @ 2015-06-15 18:12 叫我程某某 阅读(5238) 评论(0) 推荐(0)
摘要: 1.背景介绍 最近项目用到两个ScrollView的同步显示,即拖动左边的ScrollView滚动的同时,实现右边的ScrollView同步滚动。此种情形常用在复杂界面布局中,比如左边的ScrollView显示主要项目,只需上下滚动即可;右边项目是次要项目,可以实现上下或者左右滚动,当上下滚动时,... 阅读全文
posted @ 2015-06-15 18:10 叫我程某某 阅读(405) 评论(0) 推荐(0)
摘要: 1.简介 基于基于BaseExpandableListAdapter扩展的ExpandableList用法,现在网上流行的主要有两种:第一种是向BaseExpandableListAdapter传入两个数组,第一个是表示Group(目录头)信息的一维数组,第二个是表示Child(目录子项)的二维数... 阅读全文
posted @ 2015-06-15 18:07 叫我程某某 阅读(348) 评论(0) 推荐(0)
摘要: 设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设... 阅读全文
posted @ 2015-06-15 17:47 叫我程某某 阅读(144) 评论(0) 推荐(0)
摘要: 一、GuavaGoogle的基于java1.6的类库集合的扩展项目,包括collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O等等. 这些高... 阅读全文
posted @ 2015-06-15 17:44 叫我程某某 阅读(222) 评论(0) 推荐(0)
摘要: 1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如下图直观的表达了Data、Adapter、View三者的关系:Android中所有的Adapter一览: ... 阅读全文
posted @ 2015-06-15 08:29 叫我程某某 阅读(244) 评论(0) 推荐(0)
摘要: 一、在Activity之间传递String类型的数据 传递@Override public void onClick(View v) { String num1 = firstNum.getText().toString(); String num2 = secon... 阅读全文
posted @ 2015-06-15 08:18 叫我程某某 阅读(1138) 评论(0) 推荐(0)