- 博客(64)
- 资源 (27)
- 收藏
- 关注
原创 FrameLayout 测量过程(代码流水线)
/** * {@inheritDoc} * 如果,子 view如果设置属性是 match_parent, * 如果,measureMatchParentChildren是true (其实就是framlayout模式是非精准模式) * 那么这种子view是被测量了两次 */ @Override protected void onMeas
2017-06-13 09:12:37
618
4
原创 android ViewPage 的观察者模式实现
【首先是观察者的管理,采用数组型集合,线程安全,泛型可拓展】package com.android.zgx.androidday.database;import java.util.ArrayList;/** * Provides methods for registering or unregistering arbitrary observers in an {@link Ar
2016-10-06 16:15:04
445
原创 android 之 activity 和 controller 架构设计
public abstract class ActivityBase extends Activity { public static final String TAG = "ActivityBase"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCrea
2016-10-05 10:00:28
2103
原创 图片加载框架之内存缓存(一级缓存)设计(3)---- LruMemoryCache
【概要】数据结构存储 - LinkedHashMap;默认先进先出规则。缓存大小采用app内存的1/8,单位MB这里的话,基本没什么难度,都是一些日常操作,直接上代码。【LruMemoryCache】public class LruMemoryCache implements MemoryCache{ private final LinkedHashMap m
2016-08-23 21:31:38
514
原创 图片加载框架之内存缓存(一级缓存)设计(2)
【前言】图片加载框架之内存缓存(一级缓存)设计(1) 中,我们采用HashMap 和 Reference 设计了图片内存缓存日常操作(增,删,查等)。有了数据的操作之后,我接下来就开始设计大小的限制,因为我们每个app的内存都是有限制的,不可能让我们的缓存无限大。【缓存大小设置的策略】curCacheSize - 当前缓存大小(单位bit)curBitmap
2016-08-23 10:19:34
684
原创 android的activity界面跳转解耦
【一般的界面跳转方式如下】 Intent intent = new Intent(); intent.setClass(HelloworldActivity.this, NextActivity.class);// 这里强引用了 NextActivity HelloworldActivity.this.startActivity(intent);【解耦的做法
2016-08-22 11:13:49
1850
1
原创 图片加载框架之内存缓存(一级缓存)设计(1)
【首先抽象一个接口出来,作为对内存缓存的日常简单操作,代码如下】public interface MemoryCache { /** * Puts value into cache by key * * @return true - if value was put into cache successfully, false - if value wa
2016-08-22 09:46:09
1027
原创 demo - loading开源控件
-----自定义类-----import android.content.Context;import android.util.AttributeSet;import android.view.View;import android.view.animation.Animation;import android.view.animation.AnimationUtils;imp
2016-07-05 08:40:28
493
原创 BufferedInputStream 比 InputStream 性能会比较好点(实验数据及其原理 - 文件保存为例子)
【链接下载 】http://download.youkuaiyun.com/detail/zgxzgxzg/9370891
2015-12-21 17:46:37
777
原创 Loader异步装载(有demo)
【demo】http://download.youkuaiyun.com/detail/zgxzgxzg/9365313
2015-12-17 17:47:49
595
原创 android 设置壁纸,开启出现短暂黑屏问题
【解决】 千万不要去设置壁纸的大小:(调用如下接口,那么你就错了) int screenWidth = Resources.getSystem().getDisplayMetrics().widthPixels; int screenHeight = Resources.getSystem().getDisplayMetrics().heightPixels;
2015-12-08 09:59:23
3260
原创 性能提高 : 一张图片实现Loading
【背景】 以前,自己实现Loading的时候,一般采用的是,帧动画(就是用很多图片实现的动画)。但是,这样有一个弊端,就是很多图片加载进来,会耗费很多内存,导致性能的降低。为了实现一个简单的小小功能,就浪费了那么多资源,有点得不偿失。后来,自己有一天不小心接触到了,新的技术,发现,居然用一张图片就可以实现Loading。【功能描述】
2015-11-24 14:59:42
733
原创 Widget - Demo
【Demo功能说明】 定义了2个Widget,点击按钮,会以列表的形式展示出2个widget,点击任意,则会添加到布局里面显示出来。 这话主要是用于,一个控件的位置,更换不同风格的widget,以满足客户需求。【Demo下载】 http://download.youkuaiyun.com/detail/zgxzgxzg/9116879
2015-09-18 11:24:13
586
原创 bindAppWidgetIdIfAllowed 老是返回false的原因
【bindAppWidgetIdIfAllowed 老是返回false的原因】App需要系统的签名
2015-09-17 16:48:09
2087
转载 三步升级已安装的 Android SDK 和 ADT 插件
如何快速地把已安装的 Android SDK 及 Eclipse 的 ADT 插件升级到最新版本?同时又能保证之前下载的 Android API 和扩展可用。下面我们使用三步来完成更新操作。第一步,升级 Android SDK首先到 Google Android SDK 的下载页面下载最新的 SDK,注意是 “SDK tools only”,不要下载 ADT Bundle (B
2015-09-15 11:40:55
538
转载 Android Studio更新升级方法
自从2013 Google I/O大会之后,笔者就将android ide开发工具从eclipse迁移到Android Studio了,android studio一直在更新完善,为了与时俱进,我们当然要将工具更新到最新版本啦!其实更新本来是很简单,只要从Android Studio Help菜单中选择Check for Update即可:但是你会收到如下提示:
2015-09-15 11:06:00
3990
原创 面向对象分析和设计(OOA/D) --- 一个例子
第一步:定义用例:用例是需求分析的一种工具,它是一些情节的描述(我要干什么)色子游戏 游戏者请求色子 系统展示结果,如果色子的总点数是7,则游戏者胜利,否则游戏者输第二步:定义领域模型:识别问题中的概念,它是对真实世界领域中的概念和想像可视化,与具体的软件技术无关,如游戏者、色子(业务模型)(先不要考虑色子的属性,要逐步细化) 游戏者、色子、色子游戏
2015-09-07 17:38:00
4978
转载 ReentrantLock的使用
【摘要】从使用场景的角度出发来介绍对ReentrantLock的使用,相对来说容易理解一些。【场景1】:如果发现该操作已经在执行中则不再执行(有状态执行)a、用在定时任务时,如果任务执行时间可能超过下次计划执行时间,确保该有状态任务只有一个正在执行,忽略重复触发。b、用在界面交互时点击执行较长时间请求操作时,防止多次点击导致后台重复执行(忽略重复
2015-09-05 19:40:52
549
原创 FTP异常 -- it.sauronsoftware.ftp4j.FTPException [code=550, message= Directory not found] (System.err)
【异常信息】it.sauronsoftware.ftp4j.FTPException [code=550, message= Directory not found] (System.err) at it.sauronsoftware.ftp4j.FTPClient.list(FTPClient.java:2164) (System.err)【异常说明】服
2015-09-01 15:38:00
7860
原创 安卓文件安全删除问题 --- java.io.IOException: open failed: EBUSY (Device or resource busy) (System.err)
【出错打印】java.io.IOException: open failed: EBUSY (Device or resource busy) (System.err)【场景回放】项目中,本人先生成一系列文件,然后把这一系列文件通过socket网络,发送给服务器。发送完毕之后,删除这一系列文件。这就算一个回合。当再次进入第二个回合的时候,发现,报了上面所出现的警告,错
2015-08-31 14:48:11
2416
原创 项目实战一 - 安卓数据库的设计(二 settings表 ,增,更新,查类)
说明:1. settings表,元素有:ip,name,path,pathIndex,ipSettingMode,五个元素,所以,这里会抽象出一个类,叫DataBaseSettings类,主要方便内存数据操作。 最后,加入数据库,都是以对象操作的。 2. DBManager类,核心操作 - 增,更新,查操作,需要注意的是,这里面的对象 private SQLiteDatabase
2015-08-27 00:04:08
789
原创 项目实战一 - 安卓数据库的设计(一 创建类)
说明: 1. 单例模式的采用,因为,本人的项目中,涉及到了频繁的数据库操作,而且有时候涉及了多线程操作数据库,单例可以解决数据库死锁问题。 2. Oncreate函数,是数据库的创建语句主要实现。 3. onUpgrade函数,主要是,当你对数据库添加或者去除(也就是说,修改了oncreate函数的那些语句的内容),此时,你只要修改本类中的私有变量
2015-08-26 23:09:26
971
转载 安卓之FTP一些实战经验(异常处理,原理等)
使用方法: FTPClient client = new FTPClient(); client.connect("ftp.host.com", 8021); client.login("carlo", "mypassword"); 没有异常表示连接成功,否则会垫子抛出FTPException异常。 当然还有一些重载方法,如果端口为21就可以用client.connect(ho
2015-08-26 14:09:04
2286
原创 Android pm命令 以及在终端安装卸载安装包方法
pm命令的具体用法如下:pm 命令是Android里面packageManage的命令行,用于安装包的操作。一般我们在命令行下,可以使用以下命令安装一个新的安装包。1、安装APK:例如,在串口终端下输入:pm install -r /data/card/ApicalRadio.apk就可以重新安装ApicalRadio.apk到android系统上,默认是安装到
2015-08-24 13:44:15
904
原创 图片压缩,Socket发送。精华,通过本人调试
【 bitmap压缩,直接得到byte【】数据 】 /** * @Time 2015.08.08 Suinday 16:42 * @author zgx * eg: maxSize siez in fact * 100 39K */ private static int KB = 1024; pub
2015-08-09 17:06:57
1018
原创 安卓获取IP,纯代码,可以直接用。
/** * @Time 2015.08.05 Wednesday 10:57 * @author zgx * */ private String flagIpv6 = "::"; private String getDevIp(){ String err = "no ip "; try { for (Enumeration en = N
2015-08-05 11:51:00
707
原创 代理模式
【概念】为另一个对象,提供一个替身或占位符,以控制对这个对象的访问,简而言之就是用一个对象来代表另一个对象。提供其他对象一个代理或占位符,来控制该对象的访问权限。【为什么要代理模式】1 - 现在许多软件系统,都提供跨网络和系统,的应用,但在跨网络和系统应用时,作为系统开发者,并不希望客户直接访问系统中的对象.2 - 考虑到系统安全和性能因素.聪明的开发者想到
2015-07-30 19:20:07
392
原创 Htttp网络框架之Netroid (针对大文件的下载)
【背景】Netroid是一个基于Volley实现的Android Http库。提供执行网络请求、缓存返回结果、批量图片加载、大文件断点下载的常见Http交互功能。致力于避免每个项目重复开发基础Http功能,实现显著地缩短开发周期的愿景。【Jar包的下载】http://download.youkuaiyun.com/detail/zgxzgxzg/8944231
2015-07-29 20:08:49
1167
原创 安卓悬浮圆点功能
【功能视频】 http://pan.baidu.com/s/1jGKSHIu【功能描述】 触摸,出现悬浮圆点,点击圆点,出现4个item。 不做任何操作,等待15S,悬浮圆点消失。 再次触摸,悬浮再次出现。【项目源码】 http://download.youkuaiyun.com/detail/zgxzgxzg/892857
2015-07-24 10:08:42
1207
原创 JMeter 之TCP服务器并发压力测试
【描述】 apache jmeter是100%的java桌面应用程序,它被设计用来加载被测试软件功能特性、度量被测试软件的性能。设计jmeter的初衷是测试web应用,后来又扩充了其它的功能。jmeter可以完成针对静态资源和动态资源(servlets, perl脚本, java对象, 数据查询s, ftp服务等)的性能测试。 jmeter可以模拟大量的服务器负载、
2015-07-21 10:57:12
15294
转载 安卓系统源码之目录结构分析
Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,下载的代码包经过解压后(这里是Android2.2的源码包),源代码的第一层目录结构如下:|-- Makefile|-- bionic (bionic C库)|-- bootable (启动引导相关代码)|-- build
2015-07-20 08:46:39
1530
原创 安卓之单例模式
【背景】 1.大部分时候,我们把类的构造器定义成public访问权限,允许任何类自由创建这个类的实例对象,但是某些时候,允许其他类自由创建这个类的对象没有任何意义,还可能造成了系统性能的下降。 2.如果一个类始终只能创建一个实例,则这个类就被称为单例类,这个时候我们就应该把类的构造器用private修饰,从而把这个类的所有构造器隐藏起来。【优点】1、提供了对唯一实例的受控访问。
2015-07-19 17:32:56
453
原创 网络框架 - 安卓之Apache MINA
【诞生背景】socket是一种很少用的东西了,而且又是阻塞性的,So,MINA 出现了(socket进行的第三次封装)。 为什么是第三次封装?答: 第二次封装是NIO 用法,太过复杂,所以进行了第三次封装。【概念】 Apache MINA ,是一个网络应用程序框架,用来帮助用户简单地开发高性能和高可扩展性的网络应用程序。它提供了一个通过Ja
2015-07-16 20:21:03
767
原创 Linux 和 Android 书籍
【linux】 1. Linux Kernel Development. 2. Understanding the Linux Kernel. 3. Linux Device Drivers. 4. Linux内核源代码情景分析【Android】 1. Professional Andro
2015-07-14 08:55:11
459
原创 Binder机制(一)
【背景】 不在同一个进程的Activity或者Service是如何通信的呢?【进程之间通讯方法有哪些】父进程与子进程之间:管道(Pipe)、信号(Signal)和跟踪(Trace)不局限于父子进程或者兄弟进程之间:命名管道(Named Pipe)三种称为“System V IPC”的进程间通信机制:报文队列(Message)、共
2015-07-14 08:48:32
379
BufferedInputStream 比 InputStream 性能点(实验数据报告)
2015-12-21
Loader异步装载(有demo)
2015-12-17
性能提高 : 一张图片实现Loading
2015-11-24
Widget - Demo
2015-09-18
代理模式Demo
2015-07-30
Netroid框架和HttpURLConnection类的文件下载demo
2015-07-29
安卓之MINA源码Demo
2015-07-16
android+mina的Demo
2015-07-16
Gallery3D主界面,自定义XML,子Item有动画效果
2015-05-09
安卓全局盘扫描指定文件(内存,SD卡)
2015-04-27
Android判断设备网络连接状态,并判断连接方式
2015-04-08
Gallery做成弧形戓者圆形
2015-03-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人