- 博客(24)
- 收藏
- 关注
原创 Java反编译
Java反编译这篇文章来自Java Decompiler官网文档 (http://jd.benow.ca/)Java Decompiler Java反编译项目(Java Decompiler project)目的是开发可以反编译和分析Java 5及更高版本的字节码的工具集。 JD-Core是一个库,可以从.class文件重建java源代码。JD-Core可能被用来恢复丢失的源代码和探索Java
2016-05-01 13:31:08 469
原创 Ant构建Java项目
Ant构建Java项目我们创建HelloWorld项目,将源文件.java发到src中,编译后字节码.class放到bin中,对应的jar包放到exe目录中。首先使用命令行来构建项目:1.创建src目录 md src2.在src目录中存放源文件HelloWorld.java,类HelloWorld的包名为com.tghz.test 那么创建包名路径,cd
2015-06-21 15:15:05 2604
原创 Android 编码规范
Android编码规范1.包命名一个唯一的包名总是全部小写,构造为顶级域名com/edu/net+机构部门缩小+项目所写+模块名例如com.tghz.gameimsdk.activity2.类命名类名采用驼峰式命名,大小写混合,每个单词的首字母大写,使用完整单词,避免缩写词(除非该缩写词被广泛的使用,如URL,HTML)。类名的每个单词为名词,避免出现无意义的单
2015-05-18 15:46:51 692
原创 Android PullToRefreshView自定义下拉刷新控件
MyPullToRefreshView继承自LinearLayout,布局为vertical,该容器中包含三个子view,这三个view从上到下依次排列在LinearLayout中。效果图如下: 下图中蓝色部分是充满屏幕的,Header
2015-05-16 14:53:50 1399
原创 View的getWidth/getHeight与getMeasuredWidth/getMeasuredHeight的区别
View的getWidth/getHeight与getMeasuredWidth/getMeasuredHeight的区别
2015-05-12 15:49:38 1508
原创 Android Application的一些总结
Application的生命周期是最长的,随着程序的启动而创建,整个程序的结束才会被销毁。我们常常把一些需要保存的全局变量保存在Application,而不是保存在Activity中,那样还需要传递,且会随着Activity的销毁而被销毁掉。然而Application的长处也成了它的短处,因为Application不会在程序的过程中被销毁,那么很有可能保存的数据过多OOM,也可能内存泄露(
2015-04-26 13:56:06 1685
原创 ListView的三大适配器ArrayAdapter,SimpleAdapter,MyAdapter
ArrayAdapter是一个只在列表项ListItem上显示TextView的适配器。(其实在列表项上可以有其他组件,在后面会介绍)我们来看一下其构造函数。 public ArrayAdapter(Context context, int textViewResourceId) { init(context, textViewResourceId, 0, new ArrayLi
2015-04-16 18:18:45 3486
原创 Android开源项目——自定义圆形图片组件CircularImageView
项目github地址:控件功能:可以将任意图片裁剪成圆形,控件的大小可以自定义,可以指定图片中心点和半径,也可以添加圆形边框并设置边框的颜色。使用方法:和使用其他自定义控件没什么区别,这里只需要使用attr.xml中的属性和CircularImageView类文件即可。下面我列举几种使用情况1.设置控件大小和图片资源<com.example.circularim
2015-04-13 15:03:57 4527 2
原创 Android自定义控件实现
最近在项目中写了一个自定义的倒计时控件,效果是倒计时开始后,红心逐渐被填充满。效果如下图: 分为两部分:计时器和绘制Bitmap。计时器使用Timer和TimerTask,每个一秒执行一次TimerTask的run函数,使控件重绘。代码如下:mTimer = new Timer
2015-04-11 15:27:05 793
原创 fragment的保留
前面讨论过设备旋转的问题,当设备旋转时配置发生改变,系统默认的是销毁Activtiy,然后再重建Activity,因为新的配置可能需要新的资源。我们可以在AndroidManifest.xml的Activity标签中设置Android:configChanges的属性,然后重载onConfigurationChanged(Configuration),那么指定的配置发生改变时就不会销毁和重建Act
2015-03-11 15:32:13 905
原创 Fragment的总结
为什么会引入Fragment呢?考虑一下这种需求:一个列表明细类应用,包括列表界面和详情界面,当我们点击列表中某一项时,可以跳转到指定的详细界面,还可以左右滑动来切换不同的详情界面。在平板电脑上的横屏下,左侧是列表界面,右侧是详情界面,当点击某一列表项,右侧的详情界面会跳转到指定界面。Activtiy无法满足上面UI的灵活使用要求,即使Activity可以动态改变界面,但是Activity还是
2015-03-10 18:52:16 869
原创 ConnectivityManager源码分析
先来看一下关于ConnectivityManager类的介绍。/** * Class that answers queries about the state of network connectivity. It also * notifies applications when network connectivity changes. Get an instance * of this
2015-03-07 16:09:30 1916
原创 关于广播接收器BroadcastReceiver的简单总结
注:以下内容主要是为了备忘,可能内容上不严谨或书写格式上比较乱。在写BroadcastReceiver之前先讨论一下Intent的用法。Intent的作用有启动自身或其他应用中的Activity,开启广播和服务。Intent有显式和隐式之分。其构造函数有两种类型:public Intent(Content packageContext,classcls),参数常为this/co
2015-03-06 16:51:01 1561
原创 设备配置(Device Configuration)改变时的处理方法
当设备在横纵屏切换时,当前Activity的状态变化过程是:onPause()->onStop()->onDestroy()->onCreate()->onStart()->onResume()。这样会导致什么样的问题呢?假如当前Activity所使用的一些局部变量在重新onCreate后就不是原来的值了,也就是当前Activity所依附的值被改变了,我们可以使用的解决方案是:重载onSave
2015-03-05 17:04:47 7003
原创 关于struct,enum和typedef的知识总结
声明一个结构体的一般形式是:struct 结构体类型名 {成员变量集合};如:struct Student{ int num; char name; };结构体类型的定义方法及其初始化C语言中的做法:struct Student stu1,stu2;C++在保留上面的做法的同时也可用下面的方法:Student stu1,stu2
2015-03-03 19:41:44 707
原创 自定义Base64编码和解码的实现
今天把之前实现的Base64的过程写出来,这篇文章的思路是这样的,首先使用自然语言和编程语言来描述Base64编码的过程,然后介绍实现整个编码过程所设计的接口函数,最后是代码的实现和测试。
2015-02-17 18:13:56 3111
原创 Base64编码与解码原理和使用及复杂数据的存储
Base64是网络上最常用的传输8bit字节数据的编码方式之一,也可以用在复杂数据的存储上,比如我们要把类对象和图片等复杂数据进行存储,就需要将这些对象和图片的字节数据进行Base64编码,然后再讲编码后的String存储到XML文件中。 我们先来简单的了解Base64的原理:3*8=4*6 例子:s13 首先将其转换成ASCII后对应的是:115 49
2015-02-09 11:05:41 4303
原创 对Thread中MessageQueue进行操作来优化性能
我们来解决一个可能在项目工程上遇到的问题,我们每个人都有过这种操作:使用SeekBar(拖动条)来调节系统的音量,比如在电脑上改变音量大小的操作。在实现这一功能之前,我们先把我们要达到的效果列出来: 1.我们要使这个整个划动过程尽可能的流畅,不能出现划动时卡顿的情况; 2.我们在划动SeekBar的过程中,系统音量的变化过程要实时反应出来; 3.不能因为过快
2015-02-06 13:38:04 726
原创 Thread+Looper+Handler原理及项目中后台线程的应用
Handler在我刚做开发Andorid时就接触过,但是当时对其与Looper,MessageQueue,Thread的关系非常模糊。我觉得很多Android开发者都对Handler不是很清楚。由于最近的项目中使用Handler比较多,才对其原理进行了较深的研究。那么就写篇博客来总结一下吧,这样整体的思路才能更清楚,也能发现我不足的地方。 总体思路是:Looper源源不断的从Mes
2015-02-03 17:37:05 864
原创 设计模式入门-观察者模式(二)
今天有空,来解决一下所写的上一篇《观察者模式》中残留的问题。前续的文章地址是 《观察者模式》 在上一篇文章中,自己定义观察者模式中的主题接口,观察者接口,然后通过实现该主题接口得到了WeatherData类,通过实现观察者接口得到三个观察者(布告板):当前天气CurrentConditionDisplay,天气统计StatisticsDiaplay,预告天气ForecastDispl
2015-02-02 19:06:56 417
原创 Android DOM解析XML方法及优化
在Android应用开发中,我们常常要在应用启动后从服务器下载一些配置文件,这些配置文件包含一些项目中可能用到的资源,这些文件很多情况下是XML文件,这时就要将XML下载到文件中保存,之后再解析XML。解析XML的方法有DOM, SAX, JDOM, DOM4J,本文中只使用了DOM,下面先介绍DOM的基础知识和解析XML的方法,然后再结合一个项目实例来实现从XML文件的下载到解析整个过程。
2015-01-30 13:41:50 696
原创 Android windowSoftInputMode软键盘显示和隐藏的监听和实现
现在在公司,其实今天不用加班,但留下来写篇博客。今天做了一个关于聊天输入框和表情框的Demo,主要是为了使用软件盘的显示和隐藏。下面是效果图,(只是为了弄清原理,界面比较丑) 蓝色区域是输入框,获得焦点后弹出软键盘,右侧的表情按钮点击后下方会弹出表情窗口。那么弹出软键盘是什么样呢?可以看上方的图片
2015-01-27 18:52:32 2791 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人