自定义博客皮肤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)
  • 资源 (9)
  • 问答 (1)
  • 收藏
  • 关注

原创 Android WebView导致内存泄漏的问题

一个应用中每个Fragment会启动一个WebView,然后WebView的跳转原生实现.测试发现问题是即使Fragment已经被pop了, 还是会保持了那个WebView(在4.4上面可以被Chrome调试器查找到).测试结果是不需要那么复杂,只要在Fragment的Destroy 里面调用:mWebview.removeAllViews();mWebview.destro

2016-11-21 15:55:14 1587

原创 Android 出现多种问题的解决

switch区别library中的资源id时,出现错误:library中所对应的资源Id,已经不是final类型了,所以有的时候不可以将Id作为switch中的属性值。可以使用if....else...程序从前台切换到后台,程序crash:检查在Application中是否存在缓存数据的操作,因为程序在后台运行的时候,会占用比前台更多的内存,这个时候Application中的数

2016-08-30 09:22:09 772

原创 Android Butterknife浅分析

今天很顺利的完成了公司的任务,干嘛呢,当然是写写代码看看书了。发现个问题,一个APP中很多次的使用了一段代码,而且这行代码还非常不好省略,这个就是findViewId()和onClick,一个app肯定有界面和按钮,有见面就有控件,有控件就有点击需求,而有这些需求和控件就必须要在Activity或者Fragment中使用这段findViewId()和onClick(),真是太烦了,现在gith

2016-07-27 09:47:51 914

原创 Android 缓存的编写应用

我们都知道一个APP是不能没有缓存的,而一般而言,一个Android项目的缓存主要体现在数据缓存和图片缓存两点,我们一点点的讲.数据缓存首先我们要有个思想就是:一个应用类的APP,如果在2G或者3G网络下面访问的特别慢,那么这个APP就是失败的,不要使用wifi去测APP的反应速度,这种会造成,APP反应速度很快的假象,算不得真是数据。访问API,慢就慢在一来一回的请求和返回上面。服务

2016-07-20 10:19:20 504

原创 Android 设计模式 笔记 - 责任链模式

介绍:我们把多个节点首尾相连所构成的模型称之为链,对于链每个节点都可以拆开再连接,因此链式结构具有很好的灵活性。编程时候,我们这一结果应用于编程,把每一个节点看做一个对象,每一个对象拥有不同的处理逻辑,当一个请求从链式的首端发出。沿着链的路径一次传递给每一个节点对象,直至有对象处理这个请求位置,我们把这一种模式称之为责任链模式。定义:使多个对象都有机会处理请求,从而避免了请求的发送者和

2016-07-20 09:32:02 426

原创 Android 网络框架的编写和使用

一个好用的网络底层框架可以很大的程度上方便自己的项目,我们下面要做的就是一个趁手的网络框架。做一个网络框架我们首先要确定这个网络框架除了能够从网络上获取数据还需要哪些功能:首先抛弃AsyncTask,自定义一套网络底层的封装框架。设计一套适合自己App的缓存策略设计一套假数据返回的机制,在网络请求API没有返回的时候,可以假装获取到了网络返回的数据。封装用户cookie的逻辑。其他

2016-07-19 16:27:40 3472

原创 Android 设计模式 笔记 - 状态模式

介绍状态模式和策略模式几乎完全一样,但是他们的目的和本质却是完全不一样的。状态模式的行为是平行的且不可替换的,策略模式的行为则是彼此独立的,而且是可以相互替换的。即:状态模式把对象的行为包装在不同的状态对象里面,每一个状态对象都有一个共同的抽象状态基类。状态模式的意图是让一个对象再其内部状态改变的时候,其行为也要发生改变。定义当一个对象的内在状态改变时,允许改变其行为,这个对象看起

2016-07-19 09:26:08 421

原创 Android 设计模式 笔记 - 深入了解属性动画

差不多的开发者都应该知道的Android提供的三种属性动画:View AnimationDrawable AnimationProperty Animation但是在Android系统不断更新完善的过程中,他们添加了很多低版本所没有的属性动画,为了兼容这些低版本的动画,他们创建了一个兼容库,NineOldAnimations。我们就拿NineOldAnimations兼

2016-07-08 17:30:31 731

原创 Android 设计模式 笔记 - 策略模式

介绍:软件开发过程中常遇到这种情况:实现某一个功能可以有多重算法或者策略,我们会根据情况不同选择不同的算法或者策略来完成该功能。遇到这种情况,以前我的一般处理方法是将多种方法写在一个类中,调用的时候根据情况选择调用的方法。当然 ,也有人把这些算法写在一个函数里面,然后使用if...else...作为判断选择具体的算法,我们将这两种实现方法称之为硬编码。但是,如果有很多很多的算法加入到选

2016-07-08 14:29:34 368

原创 Android 重新规划项目结构

一个APP的界面有很多,少则六七十,多则两三百。所以一定要有规划的创建项目结构:首先我们要做的就是建立Lib类库,在Android studio中就是Module把所有与业务无关的逻辑全部转移到Module中。主项目保持对Module的引用。Module应该包括与业务无关的逻辑主要分为五大类:activity   这个包里主要放的是与业务无关的Activity基类。Activi

2016-07-07 17:14:01 991

原创 Android 代码崩溃异常收集整理

一个健壮的APP应该能收集运行中所有的崩溃信息,并把这些信息发送到服务器给程序员分析。我们也知道崩溃信息的收集我们可以使用try...catch...进行收集,但是作为一个APP程序而言,在每个界面,没个方法都添加一个try...catch是不可能的,这个时候我们需要的是一套统一的解决方案。怎么做这个统一的方案呢,我们这个时候需要了解一个很重要的接口:UncaughtExceptionHa

2016-07-07 15:49:33 1218

原创 Android 命名规范和编码规范

代码命名规范:无规矩不成方圆,一个项目必须有一个统一的命名规范,只有这样才是一个团队做出来的产品。命名规范需要注意一下几点:命名规范不能太别扭要清晰准确,望文知义。命名规范千万不要指定太多,要做到简单易记,适可而止具体规则如下:Java类文件命名规范:Activity命名规范,以Activity作为后缀。如AddCustomActivityAdapter命名规范,以Ad

2016-07-07 15:27:52 414

原创 Android 设计模式 笔记 - 抽象工厂模式

介绍:抽象工厂模式也是创建型设计模式之一,起源于以前对不同操作系统的图形化解决方案。定义:为创建一组相关或者相互依赖的对象提供一个接口,而不需要指定他们的具体类。使用场景:一个对象族有相同的约束时可以使用抽象工厂模式。角色:AbstractFactory:抽象工厂角色。他声明了一个用于组件一个产品的方法,每一个方法对应一种产品ConcreteFactory:具体工程

2016-07-07 11:28:39 335

原创 Android 设计模式 笔记 - 工厂方法模式

介绍:是创建型设计模式之一。工厂模式是一种结构简单的模式,平时运用广泛,比如Activity中的onCreate方法其实可以看做一个工厂模式定义:定义一个用于创建对象的接口,让子类决定实例化哪个类。使用场景:在任何需要生成复杂对象的地方都可以使用工厂模式。用new就可以完成创建的对象无需使用工厂模式。角色:抽象工厂 具体工厂抽象产品具体产品其中抽象工厂是工厂

2016-07-06 15:20:26 410

原创 Android 设计模式 笔记 - Intent信息树精确查找

Intent 的使用我们都差不多了解了,比如启动一个Activity的时候我们的代码应该这样写:startActivity(new Intent(MainActivity.this,BuilderActivity.class));这个情况我们Intent中看到了两个参数,第一个参数是上下文参数 ,不管他,第二个参数就是我们指定要跳转的Activity参数了。还有一种情况就是我们并不指定

2016-07-06 14:39:44 757

原创 Android 设计模式 笔记 - PackageManagerService信息树

Intent关于Intent我们都知道他是各个组件,进程之间的通信纽带,Android系统也是通过Intent来查找软件中的对应的组件,这个查找的过程就是

2016-07-06 09:57:07 1142

原创 Android 设计模式 笔记 - 原型模式

介绍:是一个创建型的模式。原型表明该模式应该有一个样板实例,用户从这个样板对象中复制一个内部属性一致的对象,即为:克隆。原型可定制,该模式多用于创建复杂的或者构建耗时的实例,这种情况下,复制一个已经存在的实例可使程序运行的更高效。定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。使用场景:类初始化需要消耗非常多的资源,资源种类包括:数据资源,硬件资源。通过

2016-07-05 15:20:25 376

原创 Android 设计模式 笔记 - 深入了解WindowManager

了解一:所有的可以显示到屏幕上的内容都是通过windowManager来操作的。包括Activity等。了解二:WindowManager是一个非常重要的子系统。简称WMS了解三:和WindowManager联系上的第一步就是通过Context中的getSystemService()方法。我们已经了解到各种系统的服务都会注册到ContextImpl的一个map容器里,然后通

2016-07-05 10:03:46 1271

原创 Android 设计模式 笔记 - Builder模式

介绍:通过一步步的执行方法,进行创建复杂对象。可以在不知道类的内部构建方法的时候,更精确创建对象。定义:把一个复杂福相的构建和他的定义表示分离,使得同样的构件构成可以创建不同的表示。模式的角色介绍:Product产品类 - 产品抽象类Builder - 抽象Builder类,规范商品的创建,子类实现具体的组件过程ConcreteBuilder - 具体的Builder类,实

2016-07-04 15:09:52 334

原创 Android 设计模式 笔记 - 单例模式

定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。实现单例模式的关键点:构造函数不对外开放通过静态方法或者枚举返回单例类对象。确保单例类的对象只有一个,不管是不是多线程在反序列化的时候不会出现重新构建单例对象的情况单例模式实现方法:懒汉模式简单代码“package com.mabin.gradle.eg.singleton;/**

2016-07-04 11:24:07 370

原创 Android 设计模式 笔记 - 面向对象的六大原则

六大原则 单一职责原则:代码的每个功能应该是独立的。 开闭原则:软件中的对象对于拓展是开放的,对于修改是关闭的(当软件产生变化的时候尽量使用扩展实现变化,而不是修改代码),实现开闭原则的重要手段是通过抽象 里氏替换原则:所有引用基类的地方必须能够透明的使用子类对象--核心原理是抽象 接口隔离原则:客户端不应该依赖他不需要的接口。类间的依赖关系应该建立在

2016-07-04 10:55:00 442

原创 py调用cmd命令

不说其他直接上代码:def execFormatCmd(cmd): cmd = cmd.replace('\\', '/') cmd = re.sub('/+', '/', cmd)# print cmd ret = 0 if platform.system() == "Windows": st = subprocess.STARTUP

2016-04-19 17:19:03 2858

原创 python废话:python append的问题

尝试运行下面这段代码:def appendList():    channel = []    channels = {}    for i in range(10):        channels['name'] = i        channels['value'] = "i*"+str(i)        channel.append(channels)    

2016-02-29 11:01:51 6776

原创 python废话五:python获取本机信息

python 获得本机MAC地址:def get_mac(): mac = uuid.UUID(int = uuid.getnode()).hex[-12:] mac_address = ":".join([mac[e:e+2] for e in range(0,11,2)]) return mac_addresspython获取本机ip地址:def get_i

2016-01-25 10:54:57 1216

原创 python废话四:python的import引入模块

在python中使用的是import,from...import和form import as 进行导入模块。其实就是导入已经写好的函数,成熟的方法,避免代码重复,提高开发速度。作用和使用方法类似于java。就像程序结构是下面这种:|-- src    |-- mod1.py    |-- mod2    |   |-- mod2.py    |-- test1.pyt

2016-01-25 10:30:15 866

原创 python废话三:变量:局部变量和全局变量

下面看代码:str = "python 2.7" //全局变量def test1(): str = "test_python" //局部变量 print(str) if __name__ == '__main__': test1()这个时候打印出来的是test_python难道这个方法把全局变量改变了?我们再次做个试验:str = "python

2016-01-25 09:45:21 990

原创 python废话二:学习python2还是python3

首先要了解一点的是python2和python3是不兼容的,差异比较大。另外了解,python是linux上的最常用的软件之一,而且linux上最常用到的是python2,很多程序都是依赖着python2,。从这个看出,python3要取代python2还是需要一定的时间的。所以在我下面要学习的就是python2,但是在写代码的时候要相对的考虑到迁移到python3的可行性。

2016-01-25 09:31:29 2580

原创 python废话一:python的优势

python废话:python优势一:免费!Python的使用是完全免费的,您可以从网络上免费下载、安装使用。python优势二:Python有很多的的社区对用户的使用提供技术支持,学习和使用Python技术不再是一个人在战斗!推荐两个社区:http://www.pythontab.com/和http://lib.csdn.net/base/index/11python优势三:Py

2016-01-19 15:53:31 1652

原创 Android获取屏幕数据的工具类

直接上代码package com.example;import android.app.Activity;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Rect;import android.util.DisplayMetrics;import andro

2015-12-30 15:58:31 919

原创 Android Studio的网络连接HttpURLConnection.

上篇的博客里面我说了,现在Android6.0已经将Httpclient废弃不用了,在AndroidStudio上使用的话会出现报错的情况。虽然现在在SDK中还是能找到这个类,同时使用,但是总是不方便,我们总要更新网络请求的。下面是我写的简单的HttpURLConnection请求代码。HttpRequestUtil代码:package com.yami.baichi.net;im

2015-11-10 16:48:14 9147

原创 android studio 使用httpclient

在android 6.0(API 23)中,Google已经移除了移除了Apache HttpClient相关的类,也就是HttpClient已经过时,现在推荐使用 HttpUrlConnection,如果实在是需要使用Httpclient的话需要在android studio中的build.gradle中添加android {    useLibrary 'org.apache.http.leg

2015-10-29 11:02:52 2785 1

原创 JavaWeb + mySQL + Android 实现Android简单的注册登录

服务器:使用的是tomcat 服务器,下载地址:http://tomcat.apache.org/download-80.cgitomcat配置在http://blog.csdn.net/u013062469/article/details/49360755有介绍。服务器代码我使用MyEclipse2013编写,

2015-10-23 15:34:30 6182

原创 Tomcat服务器配置

首先下载Tomcat免安装版本,下载地址:http://tomcat.apache.org/download-80.cgi将下载出来的压缩文件解压到不带有中文的文件夹中。也可以是C盘根目录,我的就是C盘更目录,取名为tomcat打开环境配置选项,新建系统变量:CATALINA_BASE,CATALINA_HOME,变量值都为C:\tomcat。tomcat服务器就算配置完成了。下面

2015-10-23 14:16:54 866

原创 Java代码改变AndroidManifest.xml的包名和icon值

写了一个公共方法,方便以后使用:public static void changeICONName(File file, String packagename) { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setIgnoringElementContentWhitesp

2015-10-14 14:42:12 2853 3

原创 java.lang.ClassCastException: com.sun.org.apache.xerces.internal.dom.DeferredCommentImpl cannot be c

错误原因:xml文档中元素之间使用了空格符,在getChildNodes()的时候系统把空格当成了文本节点,所以在遍历ChildNodes的时候将文本节点强制转换成Element类型就会出错。

2015-10-09 11:19:53 1353

原创 Java通过一系列工具打包成不需要JDK支持的exe文件

首先需要准备好的是fat-jar插件,和install4j编辑器通过fat-jar将Java项目打包成可运行的jar文件,步骤:1、安装fat-jar插件(下载地址:http://sourceforge.net/projects/fjep/),安装方式很简单直接将你下载完成后得到的jar文件复制到Eclipse的dropins文件夹中,重启Eclipse即可。2、右键点击Java项目,

2015-09-11 16:31:21 6615 1

原创 Failed resolution of: Lcom/lion/ccpay/R$style;

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/lion/ccpay/R$style;类冲突或者是工具包没有导入到项目,这个问题很明显是系统自动生成的R文件中出现的错,所以是冲突了,引用的Library,OK..

2015-09-01 13:27:06 1509 1

原创 在“JDI Event Dispatch”期间发生了内部错误。 java.lang.NullPointerException

调式超时,,尝试增加调试器超时时间( Preferences -> Java -> Debug)。

2015-09-01 13:21:36 7327 1

原创 android.view.ContextThemeWrapper cannot be cast to android.app.Activity

java.lang.ClassCastException: android.view.ContextThemeWrapper cannot be cast to android.app.Activity这个错误出现的情况是在Dialog中的context,在强制装换成Activity是会出现的,这种情况的解决方法: private static Activity scanForAc

2015-07-21 09:39:13 11145 1

原创 Android的Application

其实Application也是Android框架中的一个系统组件,性质和activity,service,content provider,BroadcastReceive一样 ,在Andorid app启动的时候系统就会创建一个Application,当我们需要指定自己的Application的时候,首先需要创建一个类继承Application,同时在AndroidManifest.xml文件中

2015-07-10 11:41:06 458

Android 登录注册 客户端

简单的登录注册界面和逻辑。服务器端如下http://download.csdn.net/detail/u013062469/9206787

2015-10-23

服务器实现项目

简单的登录注册功能,实现项目,服务器端。

2015-10-23

install4j-jre

一个方便的使用install4j工具将Java项目打包成exe文件

2015-09-11

install4j---jres文件

Java项目打包成exe文件的过程和工具

2015-09-11

apk文件中添加jar文件

apk文件中添加jar文件 ,baksmali,apktool,jar2dex

2015-07-01

Android反编译工具

Android反编译工具,有apktoo.jar,apktool.bat,baksmali-1.4.2.jar,一个我自己的.keystore,dex2jar

2015-06-29

apk反编译工具

ApkTool_GUI_1.3.5.exe apk反编译工具

2015-06-25

ant-contrib-1.0b3.jar

ant-contrib扩展包(用于ant循环打包)

2015-06-25

ant-1.9.4批量打包

算是新版本的了apache-ant-1.9.4.rar

2015-06-25

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

TA关注的人

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