- 博客(107)
- 资源 (20)
- 收藏
- 关注
原创 如何防止代码被反编译
由于apk是Android虚拟机加载的,它有一定的规范,加密apk后Dalvik无法识别apk了。完全避免是不可能的,总有人能够破解你的代码。但是有几种方式来提高被反编译取代码的难度。1 关键代码使用jni调用本地代码,用c或者c++编写,因此相对比较难于反编译2 混淆java代码。混淆是不改变代码逻辑的情况下,增加无用代码,或者重命名,使反编译后的源代码难于看懂。 网上开
2012-04-11 21:47:17
1812
原创 android应用程序的混淆打包
1 . 在工程文件project.properties中加入下proguard.config=proguard.cfg , 如下所示:target=android-8proguard.config=proguard.cfgEclipse会通过此配置在工程目录生成proguard.cfg文件2 . 生成keystore (如已有可直接利用)
2012-04-11 21:46:37
4733
1
原创 如何反编绎apk文件
1 . 到 http://code.google.com/p/android-apktool/ 下载 android apk tool 该工具可以解码得到资源文件(res 目录下的xml文件 ),但不能得到Java源文件使用方法: 在DOS窗口下进入apktool.jar所在目录, 执行DOS命令:apktool d -s c:\soft\xxx.apk c:\
2012-04-11 21:45:47
3761
原创 通过查询Android系统setting源代码掌握如何获取SD卡大小和可用空间
我们可以通过Android系统自带的setting功能查询到SD卡内存总大小和可用内存空间,如下图所示:因此,我们可以通过查询setting的源代码来查看系统是如何实现的:1. 拿到setting 源码, 在xml文件中搜索:Available space :可搜索到代码: memory_available">Available space2. 继续在文件中搜索
2012-03-11 21:39:03
4149
原创 getReadableDatabase() 和 getWritableDatabase()
Android使用getWritableDatabase()和getReadableDatabase()方法都可以获取一个用于操作数据库的SQLiteDatabase实例。(getReadableDatabase()方法中会调用getWritableDatabase()方法)其中getWritableDatabase() 方法以读写方式打开数据库,一旦数据库的磁盘空间满了,数据库就只能读而
2012-03-11 21:17:43
30609
原创 Android 异常处理:java.lang.IllegalArgumentException(...contains a path separator)
对以下错误:java.lang.RuntimeException: java.lang.IllegalArgumentException: File /data/data/com.alex.datasave/files/user.txt contains a path separator原先代码:fis = this.context.openFileInput("/data/d
2012-03-10 22:33:43
53431
2
转载 Mobile Web App发展现状及展望
在计算机的发展过程中,目前移动设备的时代可谓是潜力最大,发展最为迅猛,也是竞争最为激烈的一个时代。硬件的发展速度令所有的消费者惊叹,如果2008年给你一部主频528MHz,内存192M,屏幕3.2寸,分辨率320*480的手机,你可能会觉得非常前卫,因为CPU和分辨率足够高。而放到三年之后的今天,这部机器已经沦落到无人问津,成为古董机型的地步。不错,这就是G1的配置。而现在双核1.5G的CPU,4
2012-03-08 12:37:14
2114
原创 编写一个自己的web框架(SimpleWebFrameWork)
为什么编写一个自己的web框架,传统web编程模型有什么不好?一个请求对应一个servlet,导致servlet过多,web.xml文件特别大,维护起来麻烦。即使采用根据请求参数method在servlet里派发的方式,以减少servlet的个数。但这种方式也要求在每个servlet中写上很多重复的if…else…代码Servlet的映射地址写在web.xml文件中,工程大时,如果映射
2012-03-04 21:02:46
3660
1
转载 添加一个对象到集合中时,集合里面存放的是对象的引用还是对象本身?
问题:添加一个对象到集合中时,集合里面存放的是对象的引用还是对象本身? 答:对象的引用。以下代码可以证明:Java代码 import java.util.ArrayList; import java.util.List; public class Test5 { public static void main(St
2012-03-03 19:33:05
8982
原创 在Tomcat中配置SSL
在网络上,信息在由源主机到目标主机的传输过程会经过其他计算机,网络上的信息有可能被非法分子监听,从而导致个人隐私泄露。随着电子商务的发展,对信息安全的要求越来越高,于是Netscape公司提出了SSL(Server Socket Layer)协议,旨在达到在开放网络(Internet)上安全、保密地传输信息的目的。SSL是一种保证网络上的两个节点进行安全通信的协议,建立在SSL协议上的HTTP
2012-02-29 00:22:47
950
原创 数字签名编程与实现
package com.alex.security;import java.io.FileInputStream;import java.io.FileOutputStream;import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.PrivateKey;impor
2012-02-19 16:42:26
2378
原创 使用RSA算法对数据进行非对称加密和加密
非对称加密称为公钥加密,速度慢,加密和解密的钥匙不相同,某一个人持有私钥,任何一个人都可以知道公钥基本步骤:·得到keyPairGenerator 的实例对象,并调用其generateKeyPair()方法得到KeyPair对象。·调用KeyPair对象的getPrivate()和getPublic()方法,分别得到PrivateKey对象和PublicKey对象。·得到Cip
2012-02-19 11:31:53
1738
转载 非对称加密算法
非对称加密算法非对称加密算法(asymmetric cryptographic algorithm)又名“公开密钥加密算法”,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。算法介绍 asymmetric encoding algorithm 非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(pr
2012-02-19 09:52:23
9575
原创 使用PBEWithMD5AndDES算法完成对数据的加密和解密
package com.alex.security;import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;
2012-02-16 23:42:30
13291
原创 使用AES算法完成对数据的加密和解密
package com.alex.security;import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;
2012-02-16 14:58:48
3848
原创 基本的安全知识
对称加密与非对称加密对称加密称为密钥加密,速度快,但加密和解密的解钥必须相同,只有通信双方才能知道钥匙非对称加密称为公钥加密,速度慢,加密和解密的钥匙不相同,某一个人持有私钥,任何一个人都可以知道公钥md5算法可用于对一段信息进行不可逆的变换运算,产生一个128比特位的数字摘要。如果对输入信息做了任何形式的改变,对改变后的信息再次进行MD5运算所产生的数字摘要,与改变前的内
2012-02-16 14:56:30
630
原创 输出随机图片
输出随机图片(CAPTCHA图像):Completely Automated Public Turing Test to Tell Computers and Humans Apart (全自动区分计算机和人类的测试) 相关主要类(JDK 查看API)BufferedImage:内存图像Graphics:画笔ImageIO:输出图像放在html页面上注意:浏览器默认会缓存图
2012-02-10 21:30:34
728
原创 中文文件下载文件名乱码问题
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ServletContext sc = getServletContext(); String imgPath = "/国家奖学金.jpg"; Stri
2012-02-10 20:05:49
762
原创 用response向客户端输出中文数据
用OutputStream(字节流)发送数据:1、response.getOutputStream().write(“中国”.getBytes());//以默认编码发送数据2、response.getOutputStream().write("中国".getBytes("UTF-8"));//以UTF-8编码发送数据,浏览器(默认用GB2312)会出现乱码解决办法:2.1通过更
2012-02-10 19:41:31
1658
转载 提高tomcat的JVM内存
Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个java虚拟机。JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序。这个初始内存和最大内存在一定程度都会影响程序的性能。比如说在应用程序用到最大内存的时候,JVM是要先去做垃圾回收的动作,释放被占用的一些内存。所以想调整Tomcat的启动时初始内存和最大内存就需要向JVM声明,一般的JAVA程序在运行都
2012-02-07 22:43:01
602
转载 什么是 MIME Type?
一、首先,我们要了解浏览器是如何处理内容的。在浏览器中显示的内容有 HTML、有 XML、有 GIF、还有 Flash ……那么,浏览器是如何区分它们,决定什么内容用什么形式来显示呢?答案是 MIME Type,也就是该资源的媒体类型。媒体类型通常是通过 HTTP 协议,由 Web 服务器告知浏览器的,更准确地说,是通过 Content-Type 来表示的,例如:Content
2012-02-07 21:26:23
526
原创 在Tomcat中配置虚拟主机
配置虚拟主机,即配置一个网站打开conf/server.xml文件,增加元素属性:name:主机域名appBase:该主机下的所有应用所在的文件目录配置的主机(网站)要想被外部访问,必须在DNS服务器或windows系统中注册。在windows系统中通过 : C:\WINDOWS\system32\drivers\etc\hosts 文件注册
2012-02-07 21:17:13
543
原创 在Tomcat中配置虚拟目录
配置虚拟目录1、Context元素:配置单个web应用path属性:URL访问的入口docBase属性:web应用的存放路径reloadable属性:web应用中的资源改动后,是否自动加载。默认值是false2、配置方式:a、修改conf/server.xml文件,在Host元素中增加Context元素。不建议使用,因为改动server.xml后,需要重新启动Tomcat才
2012-02-07 21:12:13
932
原创 Servlet容器的类加载器加载顺序
在运行时,Servlet容器的类加载器先加载classes目录下的类,再加载lib目录下的JAR文件中的类。因此,如果两个目录下存在同名的类,classes目录下的类具有优先权。我们注意到Tomcat的安装目录下也有一个lib目录,这个与Web应用中的lib目录的区别在于:Tomcat的lib子目录:存放的JAR文件不仅能被Tomcat访问,还能被所有在Tomcat中发布的JavaWeb应
2012-02-07 20:51:26
3408
原创 XML 基本知识
一、XML概述1、XML是可扩展标记语言。是由W3C指定并维护的,目前最新的版本是1.02、XML作用:2.1传输数据,它是一种通用的数据交换格式2.2配置文件。二、xml语法1、XML的声明1.1语法:保存在磁盘上的文件编码要与声明的编码一致。encoding属性的默认 编码是:UTF-81.2XML的声明必须出现在XML文档的第一行2、XML
2012-02-04 23:44:26
750
原创 transform方法的乱码问题
当XML文件的文件编码以及XML文件中所定义的编码皆为GBK时 Java就业培训教程 张孝祥 39.00元 JavaScript网 张孝祥 28.00元 运行以下代码,XML 文件会出现乱码public class Test { private static String filePath = "src/books.xml";
2012-02-04 22:16:23
5473
原创 Anroid模拟器(AVD)切换屏幕
在Windows操作系统上按下Ctrl和F12键或在Mac OS X 操作系统上同时按下fn和7键,屏幕就会从预设的直式改成横式显示,再按一次则切换回来。
2012-01-13 11:47:39
1136
原创 编程实现文件复制和重命名
编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad。package com.alex.test3;import java.io.File;import java.io.FileFilter;import java.io.FileReader;import java.io.FileWriter;import
2012-01-13 10:35:19
2363
原创 编写程序整合文件中内容
编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。package com.alex.test;import java.io.File;import java.io.FileWriter;import java.io.IOException;public class Ma
2012-01-12 21:33:45
1227
1
原创 观察者模式(Observer Pattern)
观察者模式定义:Define a one-to-many dependency between objects so that when one object changes state , all its dependents are notified and updated automatically .定义对象之间的“一对多”的依赖关系,这样,当一个对象的状态发生变化时,所有依赖于这
2012-01-12 15:57:29
545
转载 状态模式(State Pattern)
State模式的定义: 不同的状态,不同的行为;或者说,每个状态有着相应的行为.何时使用?State模式在实际使用中比较多,适合"状态的切换".因为我们经常会使用If elseif else 进行状态切换, 如果针对状态的这样判断切换反复出现,我们就要联想到是否可以采取State模式了.不只是根据状态,也有根据属性.如果某个对象的属性不同,对象的行为就不一样,这点在数据库系统中出现频率
2012-01-12 15:40:21
565
转载 策略模式(Strategy Pattern)
Strategy策略模式是属于设计模式中 对象行为型模式,主要是定义一系列的算法,把这些算法一个个封装成单独的类.Stratrgy应用比较广泛,比如, 公司经营业务变化图, 可能有两种实现方式,一个是线条曲线,一个是框图(bar),这是两种算法,可以使用Strategy实现.这里以字符串替代为例, 有一个文件,我们需要读取后,希望替代其中相应的变量,然后输出.关于替代其中变量的方法可能有多
2012-01-12 15:15:58
531
原创 组合模式(Composite Pattern)
组合模式的定义:Compose objects into tree structures to represent part-whole hierarchies . Composite lets clients treat individual objects and compositions of objects uniformly .将对象组成树形结构来表明部分-整体的层次关系。组合
2012-01-12 11:51:28
785
原创 外观模式(Facade Pattern)
外观模式是软件工程中常用的一种软件设计模式。它为子系统中的一组接口提供一个统一的高层接口。使用子系统更容易使用。在真实的应用系统中,一个子系统可能由很多类组成。子系统的客户为了它们的需要,需要和子系统中的一些类进行交互。客户和子系统的类进行直接的交互会导致客户端对象和子系统(Figure1)之间高度耦合。任何的类似于对子系统中类的接口的修改,会对依赖于它的所有的客户类造成影响。
2012-01-12 10:41:54
675
转载 适配器模式(Adapter Pattern)
适配器模式定义:将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份。为何使用?我们经常碰到要将两个没有关系的类组合在一起使用,第一解决方案是:修改各自类的接口,但是如果我们没有源代码,或者,我们不愿意为了一个应用而修改各自的接口。 怎么办?使用Adapter,在这两种接口之间创建一个混合接口(混血儿)。如何使用?
2012-01-11 21:49:01
523
原创 代理模式(Proxy Pattern)
代理模式(Proxy Pattern)定义:对其他对象提供一种代理以控制对这个对象的访问。代理模式的思想是为了提供额外的处理或者不同的操作而在实际对象与调用者之间插入一个代理对象。代理模式经常在以下情景中使用:1.代理一些开销很大的对象,这样便能迅速返回,进行其它操作,只有在真正需要时才实例化;2.安全控制、同步控制,缓存处理结果,缓存初始化开销很大的对象,统计对象的使用以及异常处理等
2012-01-11 17:55:16
597
原创 原型模式(Prototype Pattern)
原型模式的定义:Specify the kinds of objects to create using a prototypical instance , and create new objects by copying this prototype .使用原型实例指定要创建的对象类型,通过复制这个实例创建新的对象。原型模式在生活中的应用场景:假如你刚给自己的客厅做了装
2012-01-11 12:07:29
740
原创 Shallow copy & Deep copy
面向对象编程语言都提供了内存中对象的复制能力,Java语言提供了对象的浅拷贝和深拷贝。浅拷贝(Shallow copy):复制一个对象时,如果它的一个属性是引用,则复制这个引用,使之指向内存中同一对象。深拷贝(Deep copy):但如果为此属性创建了一个新对象,让其引用它,则是深拷贝。实现深拷贝:使类实现java.io.Serializable接口,把原型对象序列化,
2012-01-11 11:33:21
787
转载 Android UI学习 - GridView和ImageView的使用
GridView: A view that shows items in two-dimensional scrolling grid. The items in the grid come from the ListAdapter associated with this view. 简单说,GridView就是我们资源管理器平常见到的一个个文件的icon显示方式。 上面提
2012-01-10 12:46:54
870
转载 drawable(hdpi,ldpi,mdpi)的区别
1.drawable-(hdpi,mdpi,ldpi)的区别dpi是“dot per inch”的缩写,每英寸像素数。四种密度分类: ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high)一般情况下的普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320。2.WVGA,HVGA,Q
2012-01-10 10:17:21
2211
1
在线考试系统(C#实现)
2010-03-09
图书管理系统(C#实现)
2010-03-09
网上选课系统(C#实现)
2010-03-09
css完全手册+网页设计
2010-03-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人