自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

菜鸟实验室

真的很一般

  • 博客(34)
  • 收藏
  • 关注

原创 linux笔记( 更新中)

Linux 下修改 root 密码方法passwd root查看服务 /etc/services /etc/init.d/ 启动脚本处 /etc/* :各服务各自的配置文件 service --status-all 查看所有服务

2017-11-01 17:03:29 425

原创 Bug 记事本

因为应用加了persistent,优先级提高,所以该命令没能杀死进程,导致应用的单例数据没变,测试出错

2017-09-20 11:00:03 544

原创 JavaScript 笔记本

HTML CSS JS 介绍HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、图片、视频等。CSS样式是表现。就像网页的外衣。比如,标题字体、颜色变化,或为标题加入背景图片、边框等。所有这些用来改变内容外观的东西称之为表现。JavaScript是用来实现网页上的特效效果。如:鼠标滑过弹出下拉菜单。或鼠标滑过表格的背景颜色改变。还有焦点新闻(新闻图片)的轮

2017-09-01 16:18:40 645

原创 Common sense for server

Common sense for serverjava webJDBC 是 Java 对关系型数据库进行访问的最主要的 APIServlet 是 Server Applet 的缩写,也称为服务端小程序Spring 是一个开源框架,也是一个基于控制反转、依赖注入的轻量级容器,它的出现大大简化了传统的 J2EE 开发模式。Struts2框架是MVC流程框架,适合分层开发。框架应

2017-08-24 14:11:17 403

原创 记录一些kotlin的用法

操作符Elvis 操作符 ?:val a = b?.length ?: -1安全转换 as?转型不成功返回 nullnull safetyvar a : String? = nulla?.length //a 为null 则pass,不为null 则调用a!!.length// 抛异常类型判断符 is范围操作符 : infor(i in 1..5 step 1){}for (i in 5

2017-07-18 14:12:03 526

原创 经典蓝牙的配置文件攻略

经典蓝牙的配置文件攻略1. 介绍这里讲讲经典蓝牙的规范使用,平时我们使用蓝牙电话、语音、文件传输等等都是建立在蓝牙技术联盟,一个以制定蓝牙规范,与推动蓝牙技术为宗旨的跨国组织,所建立的规范中使用的,根据谷歌的基本api文档启动蓝牙,根据不同的需求建立相应的协议连接就ok啦! 2. 源码结构 (API 22)如果想了解具体的蓝牙源码,可以到以下标记的源码位置去一探究竟: - 蓝牙协议所在:/pa

2017-06-21 14:07:13 6772

原创 Activity和Fragment回调研究

Activity和Fragment回调研究Activity和Fragment回调研究所有回调ActivityFragment调用示例没有加回退栈加了回退栈反注册没了啊啊所有回调ActivityonCreate : 第一次创建的时候执行onContentChanged : 当Activity的布局改动时,即setContentView()或者addContentView()方法执

2017-05-09 15:10:54 794

原创 【持续更新】简单记录一下常用的设计模式

设计模式单例模式Builder模式原型模式工厂方法模式抽象工厂模式策略模式状态模式责任链模式解释器模式命令模式观察者模式设计模式单例模式Double Check Lockpublic static Singleton getInstance(){ if(mInstance == null){ synchronized(Singleton.class){

2017-04-27 17:18:09 407

原创 【不断更新】python脚本常用的函数!

python 脚本常用函数文件操作字符串操作列表操作python 脚本常用函数这里记录一些脚本常用的函数文件操作路径相关os.chdir(dst_dir) #改变当前目录os.path.basename() #去掉目录路径, 返回文件名 os.path.splitext() #返回 (filename, e

2017-04-12 17:24:55 1919

原创 【cs基础】如何判断算法的好坏

算法复杂度平时我们说算法的好坏,排除一些软件和硬件上的限制,怎么去衡量这个算法运行的更快呢?这就是Big O notation的作用啦!Big O notationBig O notation是一种描述述函数渐进行为的理论,说白了,表达算法的增长趋势,一个算法会渐渐走向快速还是缓慢的表达方式。这种渐进表达有三种记号来表示:O、 Θ 和 Ω 记号法。Θ 记号渐进地给出了一个函数的上界和下界,当

2017-04-01 15:14:05 2000

原创 差分升级的攻克!(主要是so库的生成和使用啦)

差分升级一 什么是差分升级二 差分升级相关概念差分工具bsdiff 生成补丁bspatch 合成apk创建so库使用so库差分升级一. 什么是差分升级 将已安装的apk和最新的apk进行二进制对比,得到差分包。用户升级的时候只需要下载差分包,在本地使用差分包和已安装的apk合成新的apk安装即可。二. 差分升级相关概念差分工具bsdiffbspatchCourgette

2017-03-30 17:44:40 1646

原创 【cs基础】浮点数的存储

浮点数的存储为什么讨论浮点数计算机只能识别二进制,整数转化为二进制没有任何问题。但是!浮点数有小数点, 计算机怎么识别!必然要有个规范来规定计算机怎么识别吧!这个规范就是国际标准IEEE 754.浮点数的识别规范标准规定,任何浮点数的表现形式为 V= (-1)^S x M x 2^E符号位S尾数位M指数位E32bit : 符号位1,指数位8,尾数位2364bit : 符号位1,指数

2017-03-29 10:06:05 422

原创 Android日志系统概述

一 Log的使用二 Log是怎么产生的log的定义loggerhloggerclog的初始化log的读取log的写入Logcat的输出打开与初始化日志设备读取与输出日志设备一. Log的使用平常写代码,少不了log的使用,一般应用层的开发主要使用java封装的logger访问接口 (frameworks/base/core/java/android/util/Log.java)

2017-03-24 17:49:44 1096

原创 醉了,删除文件夹失败的原因竟是它.....

今天测试给了个bug,查到程序文件目录删除失败。 回头复现的时候怎么都复现不了,但log不会骗人。 最后发现!测试时开着adb shell ,访问着该文件夹没有退出,当然删除文件夹失败!orz

2017-03-23 18:10:29 601

原创 学会shell脚本

shell是什么 Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁。 Shell既是一种命令语言,又是一种程序设计语言,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。shell脚本是什么shell是为shell编写的脚本程序。- Bash是大多数Linux系统默认的Shell。#! 告诉系统其后路径所指定的程序即是解释此脚本文件的Shell程

2017-03-22 15:53:53 354 1

原创 【cs基础】C语言重点

主要参考菜鸟教程: http://www.runoob.com/cprogramming/c-data-types.html程序结构预处理指令cpp函数变量语句&表达式注释基本语法token, C 程序由各种令牌组成,令牌可以是关键字、标识符、常量、字符串值,或者是一个符号。注释 /* 我的第一个 C 程序 */数据类型算术类型整数型char(1 Byte) , unsigne

2017-03-20 17:49:09 756

原创 【cs基础】编译器的普及

编译器是什么编译器就是一种翻译程序,一般是将高级语言编写的源代码转化成汇编或者机器码。说白了就是把我们用python,java等各种语言写的程序,翻译成计算机能看懂的二进制指令数据,以便运行.编译流程 source –> 词法分析 == 各种记号Token stream –> 语法分析 == 语法树 –> 语义分析 == 优化后的语法树

2017-03-17 15:40:02 1472

原创 【cs基础】CPU是怎样执行代码的

基础概念程序是指令和数据的组合体,被复制到内存才能运行。内存地址是保存指令和数据的场所,通过地址标记。CPU 能识别和执行的只有机器语言。CPU 结构CPU 内部由寄存器、控制器、运算器和时钟四个部分构成,由电流信号相互连通 - 寄存器: 保存指令、数据 - 控制器: 读取内存输入寄存器,控制指令流转 - 运算器: 运算寄存器中的数据 - 时钟:发出计时信号,代表运算速度寄存器程序是

2017-03-17 11:10:53 1396 2

原创 你应该知道的android单元测试

介绍setup:即new 出待测试的类,设置一些前提条件执行动作:即调用被测类的被测方法,并获取返回结果验证结果:验证获取的结果跟预期的结果是一样的Junit4java测试框架 testCompile ‘junit:junit:4.12’ @Before @Test (expected = IllegalArgumentException.class) 验证是否抛该

2017-03-17 11:09:35 749

原创 Rx常用操作符

常用操作符Observable.from()它接收一个集合作为输入,然后每次输出一个元素给subscriber,将集合依次发送,map用来把把一个事件转换为另一个事件的flatmap接收一个Observable的输出作为输入,同时输出另外一个Observableconcatmap类似flatmap,区别是遵循事件的顺序switchmapobservable发送新数据时,旧数据订阅还

2017-03-17 11:08:03 1010

原创 Java定时总结(Rx一行代码解决orz)

定时任务Rxpublic class RxUtils { static public Observable<Integer> countDown(int time) { if (time < 0) time = 0; final int countTime = time; return Observable.interval(0, 1, Ti

2017-03-17 11:07:05 582

原创 【简明】To learn Redux

Action 有事情发生了Store 数据的唯一来源, store.dispatch()将action传到storeAction本质是普通对象 ,type字段,action type字段…结构自定bindActionCreators()自动把多个action创建函数绑定到dispatch方法上Reducer 更新state纯函数,接收旧的state和action,返回新的state严格的

2017-03-17 11:06:15 380

原创 Tinker 处理patch流程

Tinker 处理patch流程按推荐方式使用编译注解生成Application1. Application 加载已合成的patch加载patch 入口从注册的Application的onBaseContextAttached()开始 loadTinker()方法即是tinker 加载patch的逻辑,之后调用代理ApplicationLike的原有逻辑,方便修改反射生成TinkerLoader

2017-03-17 11:04:51 821

原创 关于Java并发的常用类回顾

volatile 关键字变量声明为volatile,表示这个变量是不稳定的,每次使用都去主存中读取Volatile 修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值问题:两个线程分别读写volatile变量,线程A写入变量,线程B读取的时候会看到写入volatile变量之前所有可见的共享变量Volatile一般情况下不能代替sychronized,因为volatile不

2017-03-17 11:03:20 355

原创 【持续更新】adb常用命令

参考https://wiki.cyanogenmod.org/w/Adb_–help记录一些以后常用的adb命令adb reboot 重启adb reboot bootloader 重启到刷机模式adb reboot recovery 重启到恢复模式adb install -r 保留数据缓存,重新安装apkadb uninstall -k 卸载apk,但保留数据缓存adb shell

2017-03-17 11:01:59 678

原创 aidl简单的使用步骤

基本使用编写.AIDL文件,定义需要的接口新建AIDL文件,编写相应的方法新建一个进程间传递对象,实现Parcelable新建一个与传递对象同名的AIDL文件,简单声明Pacelable即可自动编译之后,可在build/generated/aidl目录下找到AIDL文件对应的Java文件实现定义的接口继承自动生成的Binder类,实现其中的方法即可onTransact ()权限认证将接

2017-03-17 10:58:14 422

原创 RxJava进度学习

添加依赖compile ‘io.reactivex:rxjava:1.1.6’ compile ‘io.reactivex:rxandroid:1.2.1’Lambda表达式: step1.在根目录下的build.gradle添加:dependencies { ... classpath 'me.tatarka:gradle-retrolambda:3.2.5' ...}step

2017-03-17 10:54:43 412

原创 StateMachine 的简单使用

StateMachine 的简单使用步骤源码的frameworks/base/core/java/com/android/internal/util里面把StateMachine.java 、State.java 、IState.java复制到project目录中自定义StateMachine类继承StateMachine 自定义状态State继承State:重写enter、processMs

2017-03-17 10:53:33 5989

原创 View的绘制流程简述

onMeasureView的绘制流程是从ViewRoot(继承Handler)的performTraversals中内部调用measure方法开始measure() 方法接收widthMeasureSpec和heightMeasureSpec两个参数,两个参数由performTravelsals内部getRootMeasureSpec得到MeasureSpec由sp

2017-03-17 10:49:12 615

转载 chm文档索引程序错误

在运行中注册三个组件即可regsvr32 hhctrl.ocx  regsvr32 itss.dll  regsvr32 itircl.dll

2016-01-17 16:46:58 649

转载 尝试使用request.getRemoteAddr()时获得ipv6地址:0.0.0.0.0.0.0.1的解决方法

如果tomcat运行在IPV6启用的服务器环境中,比如windows server 2008,如果用IPV4的地址去访问8080端口,连接将会失败。即使在hosts文件中配置了:: localhost127.0.0.1 localhost也是没有效果的。因为这是tomcat的问题,我们需要在tomcat目录下,将server.xml中的address指定为使用IPV4,详细配置可以参考如下

2016-01-15 22:51:30 1397

转载 bit、byte、位、字节、汉字的关系

bit、byte、位、字节、汉字的关系 1 bit = 1 二进制数据 1 byte = 8 bit 1 字母 = 1 byte = 8 bit 1 汉字 = 2 byte = 16 bit

2016-01-10 10:49:05 548

原创 byte[] bs = new byte[1024]问题

byte[] bs = new byte[1024]; int i = 0; while((i=in.read(bs))!=-1){ out.write(bs, 0, i); } //每次以bs的大小读取文件,也就是1024B=1kB,/* 初学者有时不容易开窍,我来做个启蒙吧 设想一个存储器,只有一条地址线A0,那么这个存储器只能有2个单元

2016-01-06 09:24:15 5730

原创 classloader的一个class文件,一个是类文件

class Service() {}; Service.class.getClassLoader this.getClass().getLoader //注意两者的区别,一个是class文件,一个是类文件

2016-01-05 15:09:48 406

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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