自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (2)
  • 收藏
  • 关注

原创 Android混淆机制

如何开启混淆eclipse只需要在工程中找到projiect.properties文件,在这个文件中修改下面一段代码:proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txtAndroid Studio在对应的module中,找到build.gradle,在该文件中找到buildTypes,

2017-01-25 16:39:11 555

原创 Executor与四种线程池

这是一篇迟来的文章,从上一篇文章开始,就说要介绍Executor,但是由于有事一直>拖了好久,如果还没有看过上一篇文章的用户,可以阅读一下Android异步处理的几>种方式 。ExcutorExcutor实质上只是一个接口而已,所以我们可以建立一个类用来实现这个Excutor。public class MyExecutor implements Executor{ @Override

2017-01-25 16:38:49 1357

原创 Android异步处理的几种方式(附demo)

在Android的程序开发中,许多耗时操作都要放到子线程中,避免阻塞主线程,导致ANR。但是在使用异步线程的过程中都会遇到与主线程通信的问题。 在这里先总体介绍几种常见异步处理的技术,以及他们的对应关系:Thread使用Thread有两种方式,一直是使用Thread,一种是使用Runnable。Thread方式: public class MyThread extends Thread{

2017-01-25 16:38:13 2147

原创 Android Studio中jni的使用

最近在项目中需要使用JNI的相关东西,尤其是.so文件,发现许多开发者都是非常陌生的,所以有必要在这里做个简单的介绍。JNI的基本概念CPU的基本架构早起Android只支持ARMv5的CPU架构,而发展到现在,支持一下7种架构: ARMv5:现在很少了,应该不需要支持了 ARMv7(2010年起):魅族M9,iphone 3GS,三星I9000等 x86(2011年起):联想K800,使用这

2017-01-25 16:37:44 358

原创 Objective-C类别和协议

这一章的讲解最好能够对比代码,我将代码放在了github上: https://github.com/mymdeep/OC_foundation 需要的朋友可以参考一下类别在程序的开发过程中,经常会遇到这类情况,例如,我们在使用NSString的时候,需要NSString能够多一些自己需要的方法,比如获取字符串的长度转化成NSNumber类,或者使用UIImage的时候,我们能够增加一个自己需要的

2017-01-25 16:37:16 278

原创 Objective-C属性详解(附代码)

声明在Objective-C中,有两种声明变量的方法,第一种直接声明:@interface Person : NSObject{ NSString *name; NSString *sex; NSString *age; Hand *hands[2]; Foot *foots[2];}第二种可以使用属性,关键字@property,顾名思义,属性就是将变量看作

2017-01-25 16:36:46 596

原创 Objective-C文件组织介绍(附代码)

接口与实现Objective-C类的代码分为两部分,一部分是接口,用来展示类的构造:#import <Foundation/Foundation.h>#import "Hand.h"#import "Foot.h"@interface Person : NSObject{ NSString *name; NSString *sex; NSString *age;

2017-01-25 16:36:23 273

原创 Objective-C的继承与复合

从毕业开始一直都在做Android开发,近期开始学习Objective-C,接下来的几篇文章会具体介绍一些Objective-C的基础知识,也算是检验一下自己学习的成果。 对比代码效果更好一些,我将代码放在了github上: https://github.com/mymdeep/OC_foundation继承继承的语法格式@interface xxxx:NSObject冒号后面的标识符是需要继承

2017-01-25 16:35:59 289

原创 分享技术哪家强(附demo对比)

每一个app的开发者都会面临这样一个问题,我的应用需要一个分享功能,我应该怎么实现呢? 这时你有两个选择,一是去对应的三方平台下载对应的原生SDK,另一种就是去使用成型的分享SDK,如友盟分享等。下面对比一下原生SDK与原生分享的区别。原生与友盟分享的对比jar大小友盟的jar为用户提供了精简,去掉了不常用的功能,并且由于对各个分享平台共性的代码进行了统一,所以jar更小。 三方平台 精简

2017-01-25 16:35:31 600

原创 Android内存优化

虚拟机Android的虚拟机是Dalvik,Dalvik是指令集基于寄存器架构,执行其特有的文件格式——dex字节码,以此来完成对象生命周期管理、堆栈管理、线程管理、安全异常管理、垃圾回收等重要功能。 我们所谓的内存优化,其实就是Dalvik内存的优化。 在这里要介绍几个概念: dalvik heap:用于分配对象,处理图像 Native Heap: malloc分配,受系统限制 Andr

2017-01-25 16:34:48 335

原创 DataBinding与MVVM(含代码)

DataBinding是对MVVM架构的最好诠释,一直以来逻辑,数据模型,和界面之间的关系都没有一个很好的平衡,MVP架构会使大量的逻辑代码都集中在Presenter中,而DataBinding可以很好的平衡这些之间的关系工程配置之前看到网上许多资料都是需要配置DataBinding的依赖,但是我使用的是新版的gradle,没有出现需要配置依赖的地方,只需要在gradle(app的gradle)中加

2017-01-25 16:33:51 357

原创 Android代码的书写规范

毕业工作也有几年了,从开始学习写代码的时候就没有养成好的代码习惯,野路子起家,但是随着工作的深入,越发感觉,代码的简洁清楚就像是程序员的脸面,写出规范的代码,对个人,对团队都是非常重要的。下面我就简述一下代码的规范。遵循的格式使用花括号if else for do while等语句要和花括号一起使用,哪怕只有一句话,也要加上花括号。如:if(isTrue) true();else

2017-01-07 15:45:02 385

原创 DataBinding与MVVM(含代码)

DataBinding是对MVVM架构的最好诠释,一直以来逻辑,数据模型,和界面之间的关系都没有一个很好的平衡,MVP架构会使大量的逻辑代码都集中在Presenter中,而DataBinding可以很好的平衡这些之间的关系工程配置之前看到网上许多资料都是需要配置DataBinding的依赖,但是我使用的是新版的gradle,没有出现需要配置依赖的地方,只需要在gradle(app的gradle)中加

2017-01-07 15:44:25 409

原创 MVVM MVC MVP到底是什么

复杂的软件必须有清晰合理的架构,否则无法开发和维护。在这里简述一下这三种结构的区别。MVCMVC(Model-View-Controller)这个应该是应用最广泛也是最早的开发架构。 MVC模式的意思是,软件可以分成三个部分。 视图(View):用户界面。 控制器(Controller):业务逻辑 模型(Model):数据保存 View传送指令到Controller,Controller完

2017-01-07 15:43:40 365

原创 Android 图片压缩的那些事

在项目开发中,图片压缩是一个很棘手的问题,根据需要不同,压缩质量也会不同。而且还有可能会出现OOM的情况,所以在这里记录一下图片压缩的几种方式和用法。质量压缩质量压缩就是在不改变原图的大小的情况下,对图片质量进行压缩。说白点,就是图片可能会有一些模糊。 进行质量压缩,需要以字节的形态进行:ByteArrayOutputStream outputStream = new ByteArrayOutpu

2016-12-28 18:42:25 265

原创 Groovy基础知识

在学习gralde的时候,经常会有一些语法不知如何操作,这时候就需要一些groovy的基础知识了。基本语法Groovy注释标记和Java一样,支持//或者/**/ Groovy语句可以不用分号结尾。 Groovy中支持动态类型,即定义变量的时候可以不指定其类型。Groovy中,变量定义可以使用关键字def。注意,虽然def不是必须的,但是为了代码清晰,建议还是使用def关键字:def varia

2016-12-28 11:32:51 1076

原创 Android工程gradle详解

版本的统一管理当我们的工程中有许多module的时候,分开管理编译版本,minsdk将会是一件很麻烦的事,因为一个library的改动,可能会影响到其他module。这时我们就需要对所有的版本进行统一的管理,管理的方式有两种:rootProject我们可以把一些需要用的字段都放在project的build.gradle(注意是project的不是module的)中:ext { compile

2016-12-28 11:32:22 443

原创 Android如何签名

Android签名是阻碍开发者集成sdk最大的绊脚石,这里主要针对android签名的生成和使用进行讲解,高级开发者可忽略。签名的生成对于新浪微信facebook等平台注册分享应用,除了需要您的包名还需应用的签名,您可能根据平台提供的签名工具输入包名生成了一个签名,但很可能你此时的应用都没有一个固定的keystore(jks),只是根据你debug运行在手机上的应用生成的一个加密字符串。然后您将这个

2016-12-10 15:24:16 666

原创 解决友盟分享的报错的利器——debug模式

使用过友盟分享的朋友一定遇到过这样的情况,按照文档说明配置工程,可是依然不能分享或者分享失败。这主要是有一下几种原因: 1.有些文档的细节被忽略了 2.签名问题 3.不支持的分享内容,或开发者账号问题 第一种原因对于老用户或者熟练的开发者来说已经不是什么问题了。 反倒是第二种原因成为许多开发者的拦路虎,尤其初学的开发者,根本不知道什么叫签名,也不知道签名是什么,很多人问,为什么非要签名,难

2016-12-10 15:12:02 6176

原创 【分享集成】如何使用友盟分享面板进行自定义

最近友盟分享6.1发布了,相信看过的同学都知道这次更新最大的亮点就是分享面板了。在这里我们先做一下对比,感受一下分享面板的变化。友盟旧版的分享面板长这样:这个应该是4.x的版本时候6,1之后感觉在面板的实用程度上比之前提高了很多基本上适配了主流app分享面板的样式,不用像以前那样自己改很多了 看了一会儿之后发现,这个里面不单单

2016-12-08 15:28:06 11166 3

时间轴与HorizontalListview的结合

时间轴与HorizontalListview的结合,实现了一个时间进度的效果

2014-04-10

手机串号IMEI码查询器

该软件能查出市面几大主流品牌的手机原始产地(不是销售地,所以不能查行货水货)。产地决定质量

2011-07-18

空空如也

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

TA关注的人

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