码农明明桑
共 122 篇文章
android动画-Frame Animation
动画可以在视觉上增加程序的流畅度,我之前对于动画这一块,是会用,但是不全面,这里写下博客,全面梳理一下Android动画方面的知识。当然,关于动画这块,也有很多前人写了很多内容,大家可以去参考。 3.0以前,android支持两种动画模式,Tween Animation,Frame Animation,在android3.0中又引入了一个新的动画系统:Property Animation,这三种动画模式在SDK中被称为Property Animation,View Animation,Drawable Animation。 可通过NineOldAndroids项目在3.0之前的系统中使用Pro
2015-01-28 20:13
android反编译-如何防止反编译
前言 前面介绍了怎样去反编译别人的代码。哈哈,这里居然又写进行防止反编译。但是,还是先来写写吧。 使用ProGuard proguard android的sdk中就有提供,使用它可以对代码进行混淆和精简,处理后的代码,虽然仍然可以反编译,但是阅读起来相当困难,降低代码的可读性。操作简单,推荐使用。 proguard使用方法和配置,可以看我之前的博客: https://isming.me/2014-05-31-use-proguard/ 另外网上有别人共享的proguard配置模板,也可以参考: https://github.com/krschultz/android-proguard-snip
2015-01-18 01:35
android反编译-smali语法
前言 前面我们有说过android反编译的工具,如何进行反编译。反编译后可以得到jar或者得到smali文件。Android采用的是java语言进行开发,但是Android系统有自己的虚拟机Dalvik,代码编译最终不是采用的java的class,而是使用的smali。我们反编译得到的代码,jar的话可能很多地方无法正确的解释出来,如果我们反编译的是smali则可以正确的理解程序的意思。因此,我们有必要熟悉smali语法。 类型的表示 java里面包含两种类型,原始类型和引用类型(包括对象),同时映射到smali也是有这两大类型。 原始类型 V void (只能用于返回值类型) Z boole
2015-01-14 23:52
android反编译-反编译工具和方法
前言 开发过程中有些时候会遇到一些功能,自己不知道该怎么做,然而别的软件里面已经有了,这个时候可以采用反编译的方式,解开其他的程序,来了解一些它的做法,同时啊,还可以借鉴别人的软件结构,资源文件,等等,哈哈。那我就来讲解一些关于反编译相关的知识,主要分三篇,第一篇介绍反编译的工具和方法,第二篇,介绍smali的语法,第三篇介绍如何防止反编译,主要通过这几篇文章,了解如何去做反编译和代码加固。 工具 apktools-目前最强大的反编译工具 轻松反编译apk,解析出资源文件,xml文件,生成smali文件,还可以把修改后的文件你想生成apk。 支持windows,linux,mac。 下载地址:
2015-01-11 22:19
2014年总结
14年总结 又一年开始,网上也流散着许多的年终总结,往年我也会写写,都是流水的回忆。前两日,与小波电话聊天,突然想到问他一四年用三个词总结是什么?得到的是失恋,毕业,工作。让我说说2014的三个词,竟然一时无从说起。这两日一直思考这个问题,毕竟这一年过的比较平淡。用三个关键词形容2014,就是"踏实", “责任"和"收获"吧。 2014年对于我来说,是很平淡的一年,没有什么大的波折,一些都还比较顺。这一年很踏实,这一年读了很多书(可能是我目前为止读书最多的一年),第一年开始认真用心的写博客,同时从广州转战上海,心里上也很踏实。 这一年奶奶去世了,家里还有几个老人,同时父母身体也不好,几次回家,
2015-01-05 22:24
一个程序员的Ubuntu安装的那些软件
鄙人程序猿一枚,Android开发,常年使用Ubuntu(主要是买不起Mac,O(∩_∩)O哈哈~)。分享一下自己使用的那些软件,如果你有什么好的软件。欢迎与我交流。 输入法:开始的时候是用的fcitx,后来搜狗出了linux版本,选择之。下载链接 办公软件:WPS Linux,真心很好用,比libreOffice好用不止一点.下载链接 注意:下载alpah版本. 浏览器:chrome 和 FireFox,不解释,一个浏览器不够用的。这两个,开发调试都够了。关于支付宝的话,可以安装支付宝官方给的一个脚本就可以了。 邮件客户端: ThunderBird Mail 火狐家的,算比较好用的了。 笔记
2014-06-22 12:57
Android消息循环分析
我们的常用的系统中,程序的工作通常是有事件驱动和消息驱动两种方式,在Android系统中,Java应用程序是靠消息驱动来工作的。 消息驱动的原理就是: 1. 有一个消息队列,可以往这个队列中投递消息; 2. 有一个消息循环,不断从消息队列中取出消息,然后进行处理。 在Android中通过Looper来封装消息循环,同时在其中封装了一个消息队列MessageQueue。 另外Android给我们提供了一个封装类,来执行消息的投递,消息的处理,即Handler。 在我们的线程中实现消息循环时,需要创建Looper,如: class LooperThread extends Thread { pub
2014-04-02 19:14
解决Ubuntu下Sublime text 3中文输入的问题
好久之前便听朋友说起Sublime Text这款软件很好用,终于这几天有空折腾,把软件给装起来了。用起来确实很不错,写代码很爽。 但是用了一段时间之后,我需要输入中文了,无论怎么切换输入法,都无法切换到中文。 网上搜索了一下,原来这是Bug。找解决方法吧。下面介绍我的解决方案,是大神cjacker解决成功的啦,我只是copy一下,方便大家在遇到这个问题的时候可以方便解决。 我的系统:ubuntu 13.04 我的输入法:fcitx sublime版本:3059 理论上支持 sublime text2/3 1.保存代码sublime-imfix.c /* sublime-imfix.c Use
2014-03-15 00:24
Android图像开源视图:SmartImageView
项目需要,开发中需要加载图片,自己要写图片从网上下载的方法,还要写缓存,等等。 在网上找到一个开源项目,smartImageVIew,支持从URL和通讯录中获取图像,可以替代Android标准的ImageView。 特征: 根据URL地址装载图像; 支持装载通讯录中的图像; 支持异步装载; 支持缓存; 这个是作者的项目主页,有使用方法。 http://loopj.com/android-smart-image-view/ 下载作者的jar包导入项目后,在xml中加入控件 代码里找到该控件 SmartImageView myImage = (SmartImageView) this.findVi
2013-09-11 23:19
Java中HashMap和HashTable的区别
面试中遇到,但是不会,回来google到,分享下吧,据说是老掉牙的问题 HashMap 是Hashtable 的轻量级实现(非线程安全的实现),他们都完成了Map 接口,主要区别在于HashMap 允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。 HashMap 允许将null 作为一个entry 的key 或者value,而Hashtable 不允许。 HashMap 把Hashtable 的contains 方法去掉了,改成containsvalue 和containsKey。因为contains方法容易让人引起误解。 Hashtable 继承自Dict
2013-07-28 21:30