- 博客(64)
- 资源 (2)
- 收藏
- 关注
转载 android反编译-smali语法
前面我们有说过android反编译的工具,如何进行反编译。反编译后可以得到jar或者得到smali文件。Android采用的是java语言进行开发,但是Android系统有自己的虚拟机Dalvik,代码编译最终不是采用的java的class,而是使用的smali。我们反编译得到的代码,jar的话可能很多地方无法正确的解释出来,如果我们反编译的是smali则可以正确的理解程序的意思。因此,我们有必要熟
2015-08-19 10:12:26
890
转载 程序员扩大影响力之如何写博客
在决定写博客之前,一定想好自己要把博客建立在什么地方,不要把你的博客放在如新浪,网易,优快云一类的地方,尽管免费,但却是在扩大别人网站的影响力,还给他们带来了收入,我们程序员在公司已经被剥削的够呛了,难道还要土鳖到给别人的网站增加影响力么?IT人都喜欢装逼,就应该有自己域名,自己品牌。你要仔细挑好域名,要牛逼,要好记;自己品牌的名字,要念起来硬气,高科技感十足,有一点,不要用自己
2015-08-11 21:54:35
998
原创 Java中普通代码块,构造代码块,静态代码块区别及代码示例
执行顺序:(优先级从高到低。)静态代码块>mian方法>构造代码块>构造方法。其中静态代码块只执行一次。构造代码块在每次创建对象是都会执行。1 、普通代码块//普通代码块:在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行”public class CodeBlock01{ public static void mai
2015-05-18 00:12:20
532
原创 Junit4精简解析
JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。先简单解释一下什么是Annotation,这个单词一般是翻译成元数据。元数据是什么?元数据就是描述数据的数据。也就是说,这个东西在Java里面可以用来和public、static等关键字一样来修饰类名、方法名、变量名。修饰的作用描述这个数据是做什么用的,差不多和public描述这
2015-05-16 13:03:23
524
原创 全排列(含递归和非递归的解法)
用Java写一个函数, 如 Foo(const char *str), 打印出 str 的全排列,如 abc 的全排列: abc, acb, bca, dac, cab, cba一、 递归版本1、算法简述简单地说:就是第一个数分别以后面的数进行交换E.g:E = (a , b , c),则 prem(E)= a.perm(b,c)+ b.perm(a,c)+ c.perm
2015-04-22 16:32:32
565
原创 Cloneable和clone的使用,以及深复制与浅复制的区别
一.Cloneable 的用途 Cloneable和Serializable一样都是标记型接口,它们内部都没有方法和属性,implements Cloneable表示该对象能被克隆,能使用Object.clone()方法。如果没有implements Cloneable的类调用Object.clone()方法就会抛出CloneNotSupportedException。二.克隆的分类
2015-04-15 14:41:42
1401
转载 23种设计模式全解析
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式
2015-04-15 11:00:26
946
转载 Unicode UTF-8 UTF-16 的区别和联系
为啥需要Unicode 我们知道计算机其实挺笨的,它只认识0101这样的字符串,当然了我们看这样的01串时肯定会比较头晕的,所以很多时候为了描述简单都用十进制,十六进制,八进制表示.实际上都是等价的,没啥太多不一样.其他啥文字图片之类的其他东东计算机不认识.那为了在计算机上表示这些信息就必须转换成一些数字.你肯定不能想怎么转换就怎么转,必须得有定些规则.于是刚开始的时候就有ASCII字符集(Ame
2015-04-11 01:32:18
428
原创 Java String之String和CharSequence、StringBuilder和StringBuffer的区别
String 简介String 是java中的字符串,它继承于CharSequence。 String类所包含的API接口非常多。为了便于今后的使用,我对String的API进行了分类,并都给出的演示程序。String 和 CharSequence 关系String 继承于CharSequence,也就是说String也是CharSequence类型。 CharSequence是一个接口,它只包
2015-04-11 00:14:58
646
原创 GIT简明教程
OverviewThis is a guide focused on collaborating on Android projects together with teammates using Git.Setup GitFirst, you need to properly setup git for your project:git initNext, setup a .gitignore f
2015-04-06 11:07:50
412
原创 Python 替换不支持作为目录名的字符
写爬虫时有的图片类别的名字不能直接做目录名,可以做以下转换def rUnsupportChar(s): # 替换不能作为目录名的字符 <> : * " ? | unSupChar = r''' <>:*"?\ ''' supChar=r''' ()-^~$- ''' trans=string.maketrans(unSupChar,supCh
2015-03-21 00:11:32
521
原创 Python设置默认编码
今天在办公室写了一个抓图的爬虫,下班了还没写完就传到GitHub上,然后clone回家里继续写,可是办公室电脑运行正常的代码在家里电脑上以下代码出现错误print '编码'*SyntaxError: Non-ASCII character '\xe7' in file G:\EclipseWorkSpace*说白了就是本地的Python默认使用ascii码,而办公室的电脑不知道怎么设置的默然采用U
2015-03-21 00:05:49
693
转载 安卓touch事件的分发和消费机制
Android中与Touch事件相关的方法包括:dispatchTouchEvent(MotionEvent ev)、onInterceptTouchEvent(MotionEvent ev)、onTouchEvent(MotionEvent ev);能够响应这些方法的控件包括:ViewGroup、View、Activity。继承ViewGroup的大多是容器控件,如LinearLayout等,而继
2015-03-16 01:24:51
496
转载 如何安全退出多个Activity
我们在项目开发的时候可能会遇到安全退出应用的场景,如何能够安全退出多个Activity?网上有很多方法,如下:1、抛异常退出该方法通过抛异常,使程序Force Close。 验证可以,但是,需要解决的问题是,如何使程序结束掉,而不弹出Force Close的窗口。2、记录打开的Activity每打开一个Activity,就记录下来。在需要退出时,关闭每一个Activity即可。3、发送特定广播在需
2015-03-15 22:27:50
453
转载 EventBus使用(二)
一、概述前一篇给大家装简单演示了EventBus的onEventMainThread()函数的接收,其实EventBus还有另外有个不同的函数,他们分别是:1、onEvent 2、onEventMainThread 3、onEventBackgroundThread 4、onEventAsync这四种订阅函数都是使用onEvent开头的,它们的功能稍有不同,在介绍不同之前先介绍两个概念: 告
2015-03-15 15:11:23
607
转载 EventBus使用(一)
在Android应用开发中经常需要在Activity、Fragment、Server之间传递数据,如果每次都要用Bundle、Message之类的方法来传递数据,模块耦合度大不说,更是复杂容易出错。万能的Github上有个好轮子解决这个问题,下面一起学习一下。一、概述EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fr
2015-03-15 01:19:23
415
转载 java 泛型详解
普通泛型 class Point<T>{ // 此处可以随便写标识符号,T是type的简称 private T var ; // var的类型由T指定,即:由外部指定 public T getVar(){ // 返回值的类型由外部决定 return var ; } publ
2015-03-14 01:51:23
383
转载 Android之Adapter用法总结
1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如下图直观的表达了Data、Adapter、View三者的关系:Android中所有的Adapter一览: 由图可以看到在Android中与Adapter有关的所有接口、类的完整层级图。在我们使用
2015-03-14 01:38:04
449
原创 Handler的另外一种用法(HandlerThread)
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); HandlerThread hThread=new HandlerThread("myThread"); hThread.start(); MyHandler myhan
2015-03-13 09:54:22
415
原创 Android 屏幕截图黑屏问题解决方法
以下两种截屏方法可能由于尺寸没有设置默认过大系统不予处理。 public static Bitmap convertViewToBitmap(View view, int bitmapWidth, int bitmapHeight){ Bitmap bitmap = Bitmap.createBitmap(bitmapWidth, bitmapHeight, Bitmap.Con
2015-03-12 23:59:55
9181
转载 getApplicationContext()、getBasecontext()、getApplication() 区别
getApplicationContext() Application context is associated with the Applicaition and will always be the same throughout the life cycle.getBasecontext() should not be used just use Context instead of it
2015-03-12 23:41:21
593
转载 横竖屏切换时候Activity的生命周期
1、新建一个Activity,并把各个生命周期打印出来2、运行Activity,得到如下信息onCreate–> onStart–> onResume–>3、按crtl+f12切换成横屏时onSaveInstanceState–> onPause–> onStop–> onDestroy–> onCreate–> onStart–> onRestoreInstanceState–>
2015-03-12 23:15:59
402
原创 在Java 8中获取参数名称
在Java 8之前的版本,代码编译为class文件后,方法参数的类型是固定的,但参数名称却丢失了,这和动态语言严重依赖参数名称形成了鲜明对比。现在,Java 8开始在class文件中保留参数名,给反射带来了极大的便利。示例:public class GetRuntimeParameterName { public void createUser(String name, int age, in
2015-03-12 00:40:58
480
转载 Android中 Bitmap和Drawable相互转换的方法
1.Drawable—>BitmapResources res=getResources();Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.sample_0); Resources res=getResources(); private byte[] Bitmap2Bytes(Bitmap bm){2.Bitmap—->Drawa
2015-03-06 17:24:53
458
原创 调整support.v4.DrawerLayout中抽屉组件的打开速度
最近在研究DrawerArrow库的时候需要仔细查看三条线是怎么旋转的,无奈抽屉打开的速度太快,原生的抽屉布局实现了谷歌SDK的方法,并使用600ms这个常量作为打开和关闭抽屉的时间,所以我们如果要调试一些根据抽屉而运动的动画时需要寻找到一个办法时SDK中的抽屉打开速度可控。第一次尝试尝试打开DrawerLayout类,这个类包含用来打开和关闭导航抽屉的接口,因为一般在SDK里面都会包含一些方法来设
2015-02-11 11:12:15
2515
转载 一个经典例子让你彻彻底底理解java回调机制
以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫强调内容回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中重点内容反过来调用A类中的方法D,D这个方法就叫回调方法,这样子说你是不是有点晕晕的,其实我刚开始也是这样不理解,看了人家说比较经典的回调方式:Class A实现接口CallBack call
2015-02-10 13:16:47
473
原创 如何下载谷歌(v4, v7 & v13)支持包的源代码
在命令行执行git clone https://android.googlesource.com/platform/frameworks/support/ 去下载官方的支持包,可能需要挂VPN,然后在AndroidStudio 里点击 attach source 选择下载目录下的相应源代码根目录,系统会自动导入各个class文件。
2015-02-09 23:58:26
611
原创 linux comand
1、man命令第一个你需要知道的Linux命令就是man命令,该命令可以显示指定命令的用法和描述。比如你想知道ls命令的用法和选项,可以在终端执行“man ls”:语法: man man lsroot@devopscube:~# man lsLS(1) User Commands
2015-01-27 00:54:20
527
原创 Vector 转 String[]
网上广为流传的方法是Vector vector=new Vector();vector.add("a");vector.add("b");String []strings=(String[])vector.toArray();但是JDK1.8下会有类型转换错误 Caused by: java.lang.ClassCastException: java.lang.O
2015-01-14 22:00:20
1251
转载 SQL 注入攻击
一位客户让我们针对只有他们企业员工和顾客能使用的企业内网进行渗透测试。这是安全评估的一个部分,所以尽管我们之前没有使用过SQL注入来渗透网络,但对其概念也相当熟悉了。最后我们在这项任务中大获成功,现在来回顾一下这个过程的每一步,将它记录为一个案例。“SQL注入”是一种利用未过滤/未审核用户输入的攻击方法(“缓存溢出”和这个不同),意思就是让应用运行本不应该运行的SQL代码。如果应用毫无防备地创
2015-01-13 11:04:25
956
原创 ImageLoader must be init with configuration before using 错误解决方法
最近开发过程中用到了开源项目Android-Universal-Image-Loader。在程序开发之前在优快云的文章里看到的有Android-Universal-Image-Loader这么个好东西 ,用起来非常的方便,大家可以看Demo,里面有详细的介绍。Android-Universal-Image-Loader 在使用的过程中碰到了一些问题。当时完全是按照官方的Demo来
2015-01-12 15:16:02
544
转载 GitHub上README写法暨markdown语法解读
自从开始玩GitHub以来,就 越来越 感觉它有爱。最近对它的 README.md 文件颇为感兴趣。便写下这贴,帮助更多的还不会编写README文件的同学们。README文件后缀名为md。md是markdown的缩写,markdown是一种编辑博客的语言。用惯了可视化的博客编辑器(比如优快云博客,囧),这种编程式的博客编辑方案着实让人眼前一亮。不过貌似并不支持全部的markdown语法。
2015-01-08 22:58:48
577
转载 Pull Request的正确打开方式
GitHub的官方帮助如下:Fork A Repo: https://help.github.com/articles/fork-a-repoUsing Pull Requests: https://help.github.com/articles/using-pull-requestsMerging a pull request: https://help.github.com/arti
2015-01-07 11:24:57
1123
转载 Git fetch VS git pull
Git中从远程的分支获取最新的版本到本地有这样2个命令:1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge[html] view plaincopygit fetch origin master git log -p master..origin/master git merge origin/master
2015-01-04 14:15:58
538
原创 关于android studio Gradle报错
今天android studio跑项目,build了一下,始终跑不起,把gradle和android studio都更新了一下,还是不行,一直报这个错误UnsupportedMethodException Failed to set up Android modules in project 'Project': Unsupported method: SourcePro
2014-12-31 10:54:45
5766
转载 内存管理(一)java的内存泄露预防
1、尽早释放无用对象的引用。特别是大对象和集合对象,通过置为NULL,暗示垃圾收集器来收集该对象,防止发生内存泄露。2、程序中如果出现大量使用字符串处理,避免使用 String ,应使用 StringBuffer。for(Int i=0;i { String s1=""; s1=s1+"abc";//不要这样写 } 3、
2014-12-27 23:12:44
509
转载 java反射详解
本篇文章依旧采用小例子来说明,因为我始终觉的,案例驱动是最好的,要不然只看理论的话,看了也不懂,不过建议大家在看完文章之后,在回过头去看看理论,会有更好的理解。下面开始正文。【案例1】通过一个对象获得完整的包名和类名?123456789101112131415package Refl
2014-12-27 23:03:59
363
原创 把WordPress放在根目录而地址显示子目录的方法
今天在狗爹(GoDaddy)随便买了个域名,想建个个人博客耍耍。顺便说一句,国外域名真是良心价啊。.info域名2.99美元,加上0.17美元的管理费折合人民币20元左右。闲话少说,转入正题。很多人想让WordPress来驱动他们站点的根目录(例如:http://peoce.info ),但是他们不想让所有的的 WordPress文件把他们的根目录弄乱。WordPress允许你把WordPr
2014-12-23 23:26:38
2715
原创 让EditText不能自动获取焦点
在activity中放置了1个或1个以上的EditText,进入该activity的时候第一个EditText会接收焦点,我希望里面所有的EditText默认是不接收焦点的,该怎么做呢?错误1:在第一个EditText前面添加一个LinearLayout,并且一定要请求获得焦点,否则无效。网上很多都说到要添加一个LinearLayout,但是没有强调要使用 这句,发现不使用这句其实是没有效果的
2014-12-23 13:47:30
445
原创 Activity之间传递数据的几种方式
由于Android SDK的限制,不能调用Activity时直接访问Activity对象。因此不能像普通对象之间传递数据一样通过构造方法和类成员来传递数据。所以Android SDK提供特有的传递数据的几种方式。1. Intent对象传输数据仅限简单数据和实现序列话的对象。 传递string类型数据Intent intent= new Intent(this,MainActivity.class)
2014-12-22 15:01:28
1166
安卓touch事件的分发和消费机制
2015-03-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人