- 博客(70)
- 收藏
- 关注
原创 获取DNS解析时间
结论: 在6.0及一下的系统中,系统代码中没有hook点,所有解析dns的方式都是通过调用静态方法的方法完成的,所以6.0及以下系统是拿不到dns的解析时间的,但是在7.0及以上系统中 拿到了dns的解析时间 方法: 在7.0手机尝试 通过设置错误的host 找到系统解析dns的方法,如下图 发现系统进行dns解析的主要方式是利用InetAddress类中的方法getAllByName(S...
2018-09-20 16:43:19
5243
原创 自定义跑马灯,可以绑定任意布局
package com.biyao.ui; import android.content.Context; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.ViewFlipper; import java.u...
2018-05-17 18:57:40
426
转载 用命令行使用7z压缩
import android.content.Context; import android.os.AsyncTask; import com.dongnao.a7zipandroid.command.CommandUtils; import java.io.BufferedReader; import java.io.File; import java.io.IOException; imp
2018-02-07 15:56:21
881
原创 apk反编译工具
反编译 常用工具: apktool https://ibotpeaches.github.io/Apktool/ 平常开发中,主要资源文件的获取(AndroidManifest/res等)解包: java -jar apktool_xx.jar d *.apk -o out重打包: java -jar apktool_xx.jar b out -o *.apk dex2jar ht
2018-01-22 15:37:35
295
原创 Android长图处理
package kui.lin.longimage; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.BitmapRegionDecoder; import android.graphics.
2018-01-17 17:52:37
1296
转载 App启动速度优化
https://segmentfault.com/a/1190000007406875#articleHeader20 启动定义 当手指点击app图标 到加载第一个页面为止 trace文件分析 http://www.ituring.com.cn/article/273967 启动类型 http://www.jianshu.com/p/c967653a9468 工欲善其
2017-12-28 17:32:49
389
转载 大整数和大浮点数的使用
Java中有两个类BigInteger和BigDecimal分别表示大整数类和大浮点数类,至于两个类的对象能表示最大范围不清楚,理论上能够表示无线大的数,只要计算机内存足够大。 这两个类都在java.math.*包中,因此每次必须在开头处引用该包。 Ⅰ基本函数: 1.valueOf(parament); 将参数转换为制定的类型 比如 int a=3; BigInteger b=B
2017-12-26 16:33:32
722
原创 RSA加解密
import org.junit.Test; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.security.Key; import
2017-12-26 16:32:10
245
原创 希尔排序
package lsn1.sjjg.cct.cn.lsn1; import org.junit.Test; /** * 希尔排序 * Created by linyaokui on 17/12/8. */ public class ShellSort { @Test public void test(){ int[] array=new int[]{3
2017-12-08 16:35:20
175
原创 插入排序
package lsn1.sjjg.cct.cn.lsn1; import org.junit.Test; /** * 插入排序 * Created by linyaokui on 17/12/8. */ public class InsertSort { @Test public void test(){ int[] array=new int[]{
2017-12-08 16:12:24
161
原创 归并排序
package lsn1.sjjg.cct.cn.lsn1; import org.junit.Test; /** * 归并排序 适合链表性数据 * Created by linyaokui on 17/12/4. */ public class MergeSort { @Test public void testMerge(){ int[] arra
2017-12-04 20:15:40
179
原创 快速排序
package lsn1.sjjg.cct.cn.lsn1; import org.junit.Test; /** * 快速排序 * Created by linyaokui on 17/12/4. */ public class QuickSort { @Test public void testQuickSort(){ int[] array=ne
2017-12-04 20:10:30
194
原创 二分查找法
package lsn1.sjjg.cct.cn.lsn1; import org.junit.Test; /** * 二分查找法 * Created by linyaokui on 17/12/4. */ public class BinarySearch { @Test public void testBinarySearch(){ int[] a
2017-12-04 17:55:10
196
原创 汉诺塔
package lsn1.sjjg.cct.cn.lsn1; import org.junit.Test; /** * 递归实现汉诺塔 * * Created by linyaokui on 17/11/28. */ public class Hanoi { @Test public void test(){ hanoi(3,1,2,3);
2017-11-28 20:03:17
283
原创 菲波那切数列
package lsn1.sjjg.cct.cn.lsn1; import org.junit.Test; /** * 递归实现菲波那切数列 * * Created by linyaokui on 17/11/28. */ public class Fibonacci { @Test public void test(){ System.out.pr
2017-11-28 19:53:39
435
原创 选择排序
package lsn1.sjjg.cct.cn.lsn1; import org.junit.Test; /** * 选择排序 * * Created by linyaokui on 17/11/28. */ public class SelectSort { @Test public void test(){ int[] array = {5,4
2017-11-28 19:47:41
158
原创 冒泡排序
package lsn1.sjjg.cct.cn.lsn1; import org.junit.Test; /** * 冒泡排序 * 适合所有排序数量小于8的排序 * Created by linyaokui on 17/11/28. */ public class BubblingSort { @Test public void test(){ i
2017-11-28 19:30:24
321
原创 Android流式布局
import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; import java.util.ArrayList; import java.util.List; /** * 流式布局 * * 用法 *
2017-11-06 15:55:55
423
原创 gradle android的task任务配置
/** * 创建任务 */ task A{ //后执行 doLast{ println 'last' } //先执行 doFirst{ println 'first' } doLast{ println 'last1' } doFirst{ print
2017-09-30 14:42:41
724
原创 gradle android的依赖配置dependencies
/** * 配置仓库 */ repositories{ //本地扁平目录仓库 flatDir{ dir('libs') } jcenter() } /** * 自定义dependencies过滤组 * 因为dependencies只支持基本的风味分组 比如free x86 arm等 不支持组合 * 这样定义后就支持组合了 */ con
2017-09-26 20:24:19
2506
原创 gradle android基本配置详解
apply plugin: 'com.android.application' android { compileSdkVersion 25 buildToolsVersion "25.0.3" defaultConfig { /** * 属性的配置 */ applicationId "cct.cn.g
2017-09-24 21:19:37
1766
1
转载 cmake语法简介
转自:https://my.oschina.net/u/1046919/blog/477645 已hello.cpp为源文件,构建一个CMakeLists.txt cmake_minimum_required(VERSION 2.8) project(hello) add_executable(hello hello.cpp) 在目录中的build 文件夹中进行cmake ..和make ,
2017-09-17 20:20:55
449
原创 Groovy xml生成和解析
import groovy.xml.MarkupBuilder import groovy.xml.StreamingMarkupBuilder //生成器 //1 def fw = new FileWriter(new File("normal.xml")) def builder = new MarkupBuilder(fw) builder.html{ head("hello",m:
2017-09-01 16:53:25
724
原创 Groovy Json生成器和解析器
import groovy.json.JsonBuilder import groovy.json.JsonOutput import groovy.json.JsonSlurper //Json生成器 def builder = new JsonBuilder() builder.json { first 'lance' last 'haha' } println builde
2017-09-01 15:49:13
795
原创 Groovy动态创建类、方法合成、方法委托
/** * 动态生成类 */ def expando = new Expando(name : 'hello',fun1:{int a,int b -> a*b}) expando.height = 100 expando.fun2 = { int a,int b-> a+b } println expando.name println expando.height p
2017-08-31 18:00:24
3342
原创 Groovy方法注入
//分类注入 //1 class Req{ static def get(String self){ self.toURL().text } } use(Req){ println "https://www.baidu.com/".get() } //2 @groovy.lang.Category(String) class StringUtil{
2017-08-31 16:24:44
991
原创 Shell语句 for、while、case、if、输出重定向、grep查询用法
shell脚本 Shell就是一个命令行解释器,它的作用是解释执行用户的命令, 用户输入一条命令,Shell就解释执行一条,这种方式称为交互式(Interactive)。 Shell还有一种执行命令的方式称为批处理(Batch),用户事先写一 个Shell脚本(Script),其中有很多条命令, 让Shell一次把这些命令执行完,而不必一条一条地敲 命令。 Shell脚本和编程语言很相似
2017-08-29 15:44:21
1657
原创 阿里云tomcat配置 jdk下载 环境变量配置
下载jdk wget http://mirrors.linuxeye.com/jdk/jdk-8u121-linux-x64.tar.gz 下载tomacat wgt http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.20/bin/apache-tomcat-8.5.20.tar.gz 解压 tar
2017-08-29 15:35:18
407
原创 Shell语句 基本用法
清空命令行:reset 文件操作: 显示列表 ls -l ls -la 所有 ls -l ja* 通配符查找 创建文件 touch today.c 复制文件 cp src.txt dest.txt cp -i src.txt dest.txt 询问 cp src.txt . 复制到当前目录 cp -R 目录 dest 复制整个目录到指定路径 cp c_?1
2017-08-29 15:31:25
439
原创 C++ 模板函数 和 模板类
#include using namespace std; //模板函数 template typename T> void mySwap(T &a, T &b){ T temp; temp = a; a = b; b = temp; cout"模板T"endl; } //模板类 template typename
2017-08-24 17:09:26
204
原创 C++ 友元函数 友元类
#include #include using namespace std; //友元函数 class Girl{ public: friend void changeAge(Girl *girl,int age); // 友元函数 friend class Boy; // 友元类 int tell(); private:
2017-08-24 16:21:53
205
原创 groovy元编程 方法拦截 动态改变
//元编程 /** * 只要实现了 GroovyInterceptable接口 * 调用所有方法时 都会先调用invokeMethod方法 */ /* class Person1 implements GroovyInterceptable{ def name def dream(){ System.out.println('i have a dream')
2017-08-24 15:36:39
1266
原创 groovy调用脚本方法
import groovy.transform.TypeChecked //脚本作用域 //def name = 'aa' //pwd = 123 args = [] args[0] = 'email.groovy' println binding.variables //在另一个脚本中调用一个脚本 evaluate(new File('script.groovy')) //类中调用
2017-08-23 18:43:33
5690
原创 groovy动态语言
import groovy.transform.CompileStatic import groovy.transform.TypeChecked //动态语言测试 /** * @TypeChecked 检测语法 * respondsTo 检测是否实现了某个方法、 * hasProperty 检测是否含有某个属性 * @CompileStatic 静态加速运行速度 */ clas
2017-08-23 18:39:40
784
原创 C++ 基础 命名空间 类头文件 类的实现写法
//命名空间 :: namespace TestNameSpace { struct Teacher{ int a; }; } using namespace TestNameSpace; int main(){ TestNameSpace::Teacher teacher; teacher.a = 10; }
2017-08-22 11:30:29
820
原创 groovy运算符重写
//操作符重载 class Rmb { def number //重写+ def plus(o) { if (o instanceof Number) { new Rmb(number: number + o) } else if (o instanceof Rmb) { new Rmb(nu
2017-08-18 15:38:45
515
原创 groovy方法调用
//类的方法调用 可以用闭包代替接口 class Person{ def name def age public def getName() { return name + "_lin" } public void setName(def name) { this.name = name } def ex
2017-08-18 15:30:21
3338
原创 groovy闭包基本用法
//闭包 基本用法 def closure_my = { println 'groovy' } //调用闭包 closure_my.call() closure_my() //闭包能默认接收一个参数 closure_my('hello closure') //闭包接收多个参数 def closure1 = { i,j -> println 'groovy' p
2017-08-17 16:12:45
608
原创 groovy map集合使用
def map = [a:'aa',b:'bb',c:11] println map.a println map['a'] println map.'c' /** * 遍历元素 * 返回 * a=aa * b=bb * c=11 */ map.each { key,value-> println "${key}=${value}" } /** * 取出集合
2017-08-16 18:01:20
2935
原创 groovey list集合使用
//创建 调用 修改 def lst = [] //创建ArrayList def lst1 = [] as LinkedList //创建LinkList def lst2 = [1,2,3,2,3,2] println(lst2[1]) println(lst2[-1]) // -1倒过来取值 def lst3 = lst2[0..2] lst3[2] = 100 print
2017-08-16 18:00:27
941
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人