标签: Java

反编译APK入门

Introduction 本文简单介绍了如果使用dex2jar和jd-gui来反编译apk,查看其源码。 1. 工具和环境 本文的环境为Debian 9 x86_64,使用的工具: dex2jar 作用:将apk反编译成java源码(classes.dex转化成jar文件) JD GUI 作用:查看APK中classes.dex转化成出的jar文件,即源码文件 2. apk分析 apk文件的本质是...

java使用7z压缩解压

1. Introduction 两年前因为要在java项目中写一个解压缩的小功能,使用了7zip binding项目,并发了篇博客记录Java解压缩7z文件,没想到后来文章访问量不错,而且在谷歌和百度的搜索结果中,排名都很靠前,尽管更可能的原因是没人在这方面做东西。 前段时间做项目,又需要使用压缩解压功能,但是仔细调查后发现,这个项目早就不更新了(尽管项目页面写着Last Update: 2017...

WeatherGet天气提醒

介绍 这个小小的东西是因为上学期有几次我没注意看天气预报,没有及时换衣服,感冒了。然后也不想安装一些现成的app提醒自己。干脆自己写一个天气提醒的工具得了。于是,它就开始了。 用中华万年历的天气接口(这个是从某个论坛发现的,不是官方的,官方没有开放这个接口)返回的xml文档,利用dom4j解析这个文档,获取天气信息,这个接口得到的信息还是很多的,有五天的天气预报,包括日间和夜间,海有空气质量以及各...

String,StringBuffer与StringBuilder的区别及应用场景

文章一 介绍 String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 深入说明 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String...

JVM内存设置

问题出现 eclipse中写好安卓app在虚拟机中运行时,clipse长时间停留在100%那个进度。 最后Eclipse报告unable to execute dex:GC overhead limit exceeded错误 原因:运行中占用的堆内存超过了jvm设置的限制。 设置jm内存设置 1.设置JVM内存的参数有四个: -Xmx Java Heap最大值,默认值为物理内存的1/4,最佳设值应...

Java dom4j解析xml文档

dom4j项目地址 sourceforge 简单使用教程 一个xml文档 <?xml version=”1.0″ encoding=”UTF-8″?> <resp> <city>济南</city> <updatetime>10:10</updatetime> <wendu>2</wendu> <f...

Java解压缩7z文件

Introduction 新的7z压缩解压文章 感谢群里小伙伴们的讨论,更新下7 zip jbinding的用法。 利用7-zip的开源项目7-zip-JBinding来解压缩多种压缩文件,而不是调用外部命令(比如win下调用winrar)。 java自带的解压模块可解压缩的压缩类型有限。 项目地址(sourceforge) 代码示例 package core; import java.io.Fi...

Java的FTP上传下载

Java的FTP上传下载 Java的FTP上传下载 介绍 代码说明 代码 介绍 利用apache开源项目HttpClient在java中进行ftp的上传下载,只用FTP的话,直接用从这个项目的包里面提取出的common包就可以。 代码说明 connect(String path,String addr,int port,String username,String password ) 传入参数就...

Java中的正则表达式

Java中的正则表达式 正则表达式 Java中使用正则表达式 正则表达式 正则表达式是个很强大的工具,使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。 关于正则表达式,这里有一份入门文档。非常经典,而且非常详细。 Java中使用正则表达式 //line是输入的字符...

Android中AsyncTask的依赖执行用法

在Android中实现异步任务机制有两种方式,Handler和AsyncTask。 Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更新,这种方式对于整个过程的控制比较精细,但也是有缺点的,例如代码相对臃肿,在多个任务同时执行时,不易对线程进行精确的控制。 为了简化操作,Android1.5提供了工具类android.os.Asyn...