自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张国祥的专栏

爱技术,爱分享

  • 博客(64)
  • 资源 (27)
  • 收藏
  • 关注

原创 RelativeLayout 测量过程(代码流水线)

相对布局测量代码流水线

2017-06-15 09:29:47 1321 2

原创 FrameLayout 测量过程(代码流水线)

/** * {@inheritDoc} * 如果,子 view如果设置属性是 match_parent, * 如果,measureMatchParentChildren是true (其实就是framlayout模式是非精准模式) * 那么这种子view是被测量了两次 */ @Override protected void onMeas

2017-06-13 09:12:37 555 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 396

原创 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 2013

原创 图片加载框架之内存缓存(一级缓存)设计(3)---- LruMemoryCache

【概要】数据结构存储 - LinkedHashMap;默认先进先出规则。缓存大小采用app内存的1/8,单位MB这里的话,基本没什么难度,都是一些日常操作,直接上代码。【LruMemoryCache】public class LruMemoryCache implements MemoryCache{ private final LinkedHashMap m

2016-08-23 21:31:38 469

原创 图片加载框架之内存缓存(一级缓存)设计(2)

【前言】图片加载框架之内存缓存(一级缓存)设计(1)   中,我们采用HashMap 和 Reference 设计了图片内存缓存日常操作(增,删,查等)。有了数据的操作之后,我接下来就开始设计大小的限制,因为我们每个app的内存都是有限制的,不可能让我们的缓存无限大。【缓存大小设置的策略】curCacheSize - 当前缓存大小(单位bit)curBitmap

2016-08-23 10:19:34 635

原创 解决 Fragment 重叠问题

【每次退到后台的时候,都状态保存下,重新启动(非第一次重启)时候,就可以恢复状态,避免重叠】

2016-08-23 09:29:20 736

原创 android的activity界面跳转解耦

【一般的界面跳转方式如下】 Intent intent = new Intent(); intent.setClass(HelloworldActivity.this, NextActivity.class);// 这里强引用了 NextActivity HelloworldActivity.this.startActivity(intent);【解耦的做法

2016-08-22 11:13:49 1784 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 949

原创 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 466

原创 单例模式可能带来的内存泄漏

2016-01-23 20:09:48 1826

原创 BufferedInputStream 比 InputStream 性能会比较好点(实验数据及其原理 - 文件保存为例子)

【链接下载 】http://download.csdn.net/detail/zgxzgxzg/9370891

2015-12-21 17:46:37 739

原创 Loader异步装载(有demo)

【demo】http://download.csdn.net/detail/zgxzgxzg/9365313

2015-12-17 17:47:49 545

原创 android 设置壁纸,开启出现短暂黑屏问题

【解决】  千万不要去设置壁纸的大小:(调用如下接口,那么你就错了) int screenWidth = Resources.getSystem().getDisplayMetrics().widthPixels; int screenHeight = Resources.getSystem().getDisplayMetrics().heightPixels;

2015-12-08 09:59:23 2944

原创 性能提高 : 一张图片实现Loading

【背景】        以前,自己实现Loading的时候,一般采用的是,帧动画(就是用很多图片实现的动画)。但是,这样有一个弊端,就是很多图片加载进来,会耗费很多内存,导致性能的降低。为了实现一个简单的小小功能,就浪费了那么多资源,有点得不偿失。后来,自己有一天不小心接触到了,新的技术,发现,居然用一张图片就可以实现Loading。【功能描述】

2015-11-24 14:59:42 684

原创 java设计模式之组合模式

2015-11-13 23:43:51 326

原创 Widget - Demo

【Demo功能说明】        定义了2个Widget,点击按钮,会以列表的形式展示出2个widget,点击任意,则会添加到布局里面显示出来。       这话主要是用于,一个控件的位置,更换不同风格的widget,以满足客户需求。【Demo下载】          http://download.csdn.net/detail/zgxzgxzg/9116879

2015-09-18 11:24:13 551

原创 bindAppWidgetIdIfAllowed 老是返回false的原因

【bindAppWidgetIdIfAllowed 老是返回false的原因】App需要系统的签名

2015-09-17 16:48:09 1965

转载 三步升级已安装的 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 495

转载 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 3859

原创 面向对象分析和设计(OOA/D) --- 一个例子

第一步:定义用例:用例是需求分析的一种工具,它是一些情节的描述(我要干什么)色子游戏    游戏者请求色子  系统展示结果,如果色子的总点数是7,则游戏者胜利,否则游戏者输第二步:定义领域模型:识别问题中的概念,它是对真实世界领域中的概念和想像可视化,与具体的软件技术无关,如游戏者、色子(业务模型)(先不要考虑色子的属性,要逐步细化)  游戏者、色子、色子游戏

2015-09-07 17:38:00 4806

转载 ReentrantLock的使用

【摘要】从使用场景的角度出发来介绍对ReentrantLock的使用,相对来说容易理解一些。【场景1】:如果发现该操作已经在执行中则不再执行(有状态执行)a、用在定时任务时,如果任务执行时间可能超过下次计划执行时间,确保该有状态任务只有一个正在执行,忽略重复触发。b、用在界面交互时点击执行较长时间请求操作时,防止多次点击导致后台重复执行(忽略重复

2015-09-05 19:40:52 466

原创 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 7594

原创 安卓文件安全删除问题 --- 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 2328

原创 项目实战一 - 安卓数据库的设计(二 settings表 ,增,更新,查类)

说明:1. settings表,元素有:ip,name,path,pathIndex,ipSettingMode,五个元素,所以,这里会抽象出一个类,叫DataBaseSettings类,主要方便内存数据操作。    最后,加入数据库,都是以对象操作的。 2. DBManager类,核心操作 - 增,更新,查操作,需要注意的是,这里面的对象 private SQLiteDatabase

2015-08-27 00:04:08 734 1

原创 项目实战一 - 安卓数据库的设计(一 创建类)

说明:       1. 单例模式的采用,因为,本人的项目中,涉及到了频繁的数据库操作,而且有时候涉及了多线程操作数据库,单例可以解决数据库死锁问题。       2. Oncreate函数,是数据库的创建语句主要实现。       3. onUpgrade函数,主要是,当你对数据库添加或者去除(也就是说,修改了oncreate函数的那些语句的内容),此时,你只要修改本类中的私有变量

2015-08-26 23:09:26 928

转载 安卓之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 2180

原创 Android pm命令 以及在终端安装卸载安装包方法

pm命令的具体用法如下:pm 命令是Android里面packageManage的命令行,用于安装包的操作。一般我们在命令行下,可以使用以下命令安装一个新的安装包。1、安装APK:例如,在串口终端下输入:pm install -r /data/card/ApicalRadio.apk就可以重新安装ApicalRadio.apk到android系统上,默认是安装到

2015-08-24 13:44:15 849

原创 图片压缩,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 937 1

原创 安卓获取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 662

原创 看不惯别人

2015-08-01 10:08:38 405

原创 代理模式

【概念】为另一个对象,提供一个替身或占位符,以控制对这个对象的访问,简而言之就是用一个对象来代表另一个对象。提供其他对象一个代理或占位符,来控制该对象的访问权限。【为什么要代理模式】1 - 现在许多软件系统,都提供跨网络和系统,的应用,但在跨网络和系统应用时,作为系统开发者,并不希望客户直接访问系统中的对象.2 - 考虑到系统安全和性能因素.聪明的开发者想到

2015-07-30 19:20:07 355

原创 Htttp网络框架之Netroid (针对大文件的下载)

【背景】Netroid是一个基于Volley实现的Android Http库。提供执行网络请求、缓存返回结果、批量图片加载、大文件断点下载的常见Http交互功能。致力于避免每个项目重复开发基础Http功能,实现显著地缩短开发周期的愿景。【Jar包的下载】http://download.csdn.net/detail/zgxzgxzg/8944231

2015-07-29 20:08:49 1112

原创 安卓悬浮圆点功能

【功能视频】        http://pan.baidu.com/s/1jGKSHIu【功能描述】      触摸,出现悬浮圆点,点击圆点,出现4个item。      不做任何操作,等待15S,悬浮圆点消失。      再次触摸,悬浮再次出现。【项目源码】      http://download.csdn.net/detail/zgxzgxzg/892857

2015-07-24 10:08:42 1154

原创 JMeter 之TCP服务器并发压力测试

【描述】  apache jmeter是100%的java桌面应用程序,它被设计用来加载被测试软件功能特性、度量被测试软件的性能。设计jmeter的初衷是测试web应用,后来又扩充了其它的功能。jmeter可以完成针对静态资源和动态资源(servlets, perl脚本, java对象, 数据查询s, ftp服务等)的性能测试。        jmeter可以模拟大量的服务器负载、

2015-07-21 10:57:12 15093

转载 安卓系统源码之目录结构分析

Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,下载的代码包经过解压后(这里是Android2.2的源码包),源代码的第一层目录结构如下:|-- Makefile|-- bionic               (bionic C库)|-- bootable            (启动引导相关代码)|-- build 

2015-07-20 08:46:39 1436

原创 安卓之单例模式

【背景】 1.大部分时候,我们把类的构造器定义成public访问权限,允许任何类自由创建这个类的实例对象,但是某些时候,允许其他类自由创建这个类的对象没有任何意义,还可能造成了系统性能的下降。 2.如果一个类始终只能创建一个实例,则这个类就被称为单例类,这个时候我们就应该把类的构造器用private修饰,从而把这个类的所有构造器隐藏起来。【优点】1、提供了对唯一实例的受控访问。

2015-07-19 17:32:56 425

原创 网络框架 - 安卓之Apache MINA

【诞生背景】socket是一种很少用的东西了,而且又是阻塞性的,So,MINA 出现了(socket进行的第三次封装)。  为什么是第三次封装?答: 第二次封装是NIO 用法,太过复杂,所以进行了第三次封装。【概念】         Apache   MINA ,是一个网络应用程序框架,用来帮助用户简单地开发高性能和高可扩展性的网络应用程序。它提供了一个通过Ja

2015-07-16 20:21:03 721

原创 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 427

原创 Binder机制(一)

【背景】    不在同一个进程的Activity或者Service是如何通信的呢?【进程之间通讯方法有哪些】父进程与子进程之间:管道(Pipe)、信号(Signal)和跟踪(Trace)不局限于父子进程或者兄弟进程之间:命名管道(Named Pipe)三种称为“System V IPC”的进程间通信机制:报文队列(Message)、共

2015-07-14 08:48:32 350

BufferedInputStream 比 InputStream 性能点(实验数据报告)

文本的保存(写入磁盘的时候),字节流 : BufferedInputStream 比 InputStream 性能会比较好点(本人测试过,有实验数据)

2015-12-21

Loader异步装载(有demo)

android 3.0 开始引进。 让Activity/fragment 异步加载数据,变得简单。 Loader对于并发,可以用过Loader管理器统一管理,所以更适合批量处理多个异步任务的处理(当然内部仍然是多线程)。 Loader异步装载(有demo)

2015-12-17

性能提高 : 一张图片实现Loading

以前,自己实现Loading的时候,一般采用的是,帧动画(就是用很多图片实现的动画)。但是,这样有一个弊端,就是很多图片加载进来,会耗费很多内存,导致性能的降低。为了实现一个简单的小小功能,就浪费了那么多资源,有点得不偿失。后来,自己有一天不小心接触到了,新的技术,发现,居然用一张图片就可以实现Loading。

2015-11-24

App系统权限工具包

App系统权限工具包,配合本人的博客使用

2015-09-18

Widget - Demo

定义了2个Widget,点击按钮,会以列表的形式展示出2个widget,点击任意,则会添加到布局里面显示出来。这话主要是用于,一个控件的位置,更换不同风格的widget,以满足客户需求。

2015-09-18

代理模式Demo

代理模式Demo Business - 接口类 ProxySubject - 代理类(利用接口,对真实对象的调用) RealSubject - 真实对象(重要实现接口) testMain - 测试类

2015-07-30

htp多线程断点下载文件

htp多线程断点下载文件 线程数量并不代表下载的速度喔。

2015-07-29

Netroid框架和HttpURLConnection类的文件下载demo

Netroid框架 HttpURLConnection类 文件下载demo 主要目的是测量文件下载的速度,注意网络环境的一致性

2015-07-29

netroid-1.2.1.jar

Netroid 的 Jar包,这是目前最新的版本,谢谢使用。

2015-07-29

安卓悬浮圆点功能

触摸,出现悬浮圆点,点击圆点,出现4个item。 不做任何操作,等待15S,悬浮圆点消失。 再次触摸,悬浮再次出现。

2015-07-24

JMeter 之TCP服务器并发压力测试

JMeter 之TCP服务器并发压力测试,图文详细介绍,傻瓜式操作。

2015-07-21

安卓之MINA源码Demo

服务器和客户端都由这个APP组成,主要目的在于了解MINA框架通讯的常用类 IoAccepter 相当于网络应用程序中的服务器端 IoConnector 相当于客户端 IoSession 当前客户端到服务器端的一个连接实例 IoHandler 业务处理逻辑 IoFilter 过滤器用于悬接通讯层接口与业务层接口

2015-07-16

android+mina的Demo

服务器:Android手机;客户端:Android手机。 通过Demo可以清晰的看到Android平台使用Mina框架处理Socket通信的方法。 主要是了解Mina框架中的类的使用。常见的: IoAccepter 相当于网络应用程序中的服务器端 IoConnector 相当于客户端 IoSession 当前客户端到服务器端的一个连接实例 IoHandler 业务处理逻辑 IoFilter 过滤器用于悬接通讯层接口与业务层接口

2015-07-16

呼吸灯效果

灯闪烁效果,类似呼吸灯。这是一个Demo可以直接用。

2015-05-23

导航菜单(可以自动隐藏)

本人项目的主界面,菜单以导航栏的形式存在,可以自动隐藏和出现。代码下载直接可以用。

2015-05-22

齿轮转动动画

安卓的齿轮动画demo,本人在项目中用到,欢迎使用。

2015-05-12

Gallery3D主界面,自定义XML,子Item有动画效果

Gallery3D,完全自定义XML布局,很好的主界面模板。 其中,子Item中的电子钟,是带秒表的,可以转动的,准确时间

2015-05-09

安卓全局盘扫描指定文件(内存,SD卡)

代码可用,不可用,请吐槽! 实现功能如下: 1.得到设备的内,外存储路径 2.一个变量指定需要扫描的文件名字 3.在得到的路径里面,递归扫描文件,找到了就不扫描了,没有找到就直到扫描完 4.全程LOG打印 5.代码简单可用

2015-04-27

android-serialport-api

android-serialport-api

2015-04-10

文件操作工具类

本代码涉及文件的读,写,追加,等一系列文件日常操作,使用方便!

2015-04-08

高效率的实时显示时钟

android中高效率的实时时间的显示源代码,分享出来供大家有需要的用。

2015-04-08

安卓Wifi强弱图片实时显示

通过WifiManager监听Wifi信号强弱,即获得一定的数值,通过数值范围来判断,并更换图片

2015-04-08

Android判断设备网络连接状态,并判断连接方式

这个小例子可以判断设备是否已经连接网络,并且在连接网络的状态下可以判断是wifi无线连接还是GPRS手机网络连接,这样就可以在不同的网络连接下去调用不同的方法,处理不同的事情,比如一个有下载功能的app可以判断只有当wifi连接的是后去下载文件,GPRS流量连接则不下载! 在没有连接的网络的情况下会弹出一个对话框,让用户选择是否去设置网络连接!

2015-04-08

3D头像效果

头像,照片呈现3D炫酷效果,适合做图像的相册和头像多用户的选择。同时可以学习自定义的圆形imageview。

2015-03-26

安卓http上传头像

安卓http上传头像,只需要修改IP,就可以用!

2015-03-26

Gallery做成弧形戓者圆形

Gallery做成弧形戓者圆形,亲自测试过,可以用!前提是下载者自己已经实现了Gallery的图像显示,加上这个附件,那么就可以实现Gallery做成弧形戓者圆形。谢谢!

2015-03-26

Android为Http设置证书(用户名和密码)

安卓http设置了帐号密码,请求需要填写帐号密码,对文本,图片的请求接口已经写好,并且测试成功。 这样做加强了http的安全性

2015-03-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除