自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

看风景的博客

点滴积累,量的不断增加,一定会发生质的变化

  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除