自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (1)
  • 收藏
  • 关注

原创 APK 签名轮替方案 v3

Android 9 支持 APK 密钥轮替,使得应用能够在 APK 更新过程中更改其签名密钥。为了实现轮替,APK 必须指示新旧签名密钥之间的信任级别。为了支持密钥轮替,我们将 APK 签名方案从 v2 更新为 v3,以允许使用新旧密钥。V3 签名特性在 Android 9 及更高版本中,可以根据 APK 签名方案 v3、v2 或 v1 验证 APK。较旧的平台会忽略 v3 签名而尝试验证 v2 签名,然后尝试验证 v1 签名。签名轮替后,android 9 上升级到新版本后,不能再安装旧版签名的 a

2021-04-02 18:59:13 2341 1

原创 Android 11 签名压缩 so 库

Android 11 要求,预装的apk,target sdk 为 30 以上,必须在 apk 中使用未压缩的 so 库。检查方式,运行命令 unzip -v your_app.apk ‘lib//.so’如果 so 库文件显示 Defi,表示经过压缩$ unzip -v demo.apk 'lib/*/*.so'Archive: demo.apk Length Method Size Cmpr Date Time CRC-32 Name-------- --

2021-03-29 15:56:51 1991

原创 HTTP 常用知识

HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写:基于TCP/IP通信协议来传递数据;客户端/服务端(C/S)的架构模型;无状态的请求/响应协议。Http 报文格式请求报文一个HTTP请求的消息以下四个部分组成:请求行(request line)、请求头部(header)、空行和请求数据。GET /hello.txt HTTP/1.1User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zl.

2021-03-19 18:16:01 612

原创 int 包装类型 Integer

int 是 java 内置的基本数据类型,对应有一个包装类型 Integer。Integer 内部有一个缓存 IntegerCache,通过享元模式,将最常用的 Integer 缓存,节省内存。private static class IntegerCache { static final int low = -128; static final int high; static final Integer[] cache; static Integer[] archiv

2021-03-17 13:44:25 2982

原创 阅读 jdk 代码之导入 idea

下载代码https://github.com/openjdk/jdk 下载 jdk 最新代码。git clone https://github.com/openjdk/jdk.git导入 idea ide打开 idea,open 下载的 jdk 代码目录,等待导入。设置项目的 sdk, idea 菜单 File -> Project Structure :添加 sdk, 选中左侧 Platform Settings 下面的 SDKs,点击中间的 +,添加 sdk;Name 栏修改名称,

2021-03-16 11:05:18 402

原创 String长度限制

String长度有限制吗?是多少?Java中String是有长度限制的,在JVM编译中还有规范。String其实是使用的一个char类型的数组来存储字符串中的字符的。public final class String implements java.io.Serializable, Comparable<String>, CharSequence, Constable, ConstantDesc { @Stable private f

2021-03-15 18:41:43 561

原创 Android System Server

System ServerAndroid 系统服务进程 system_server,运行着各种服务,比如 PMS, AMS, WMS 等等。 该进程是启动时,由 Zygote 启动。frameworks/base/core/java/com/android/internal/os/ZygoteInit.javaprivate static Runnable forkSystemSer...

2019-04-28 15:18:14 267

原创 Android Zygote Fork

Zygotezygote 孵化器是 Android 应用进程的模板,通过其 fork 出来。 Zygote初始化最后进入 select 循环, 等待客户端的请求 fork 应用进程。frameworks/base/core/java/com/android/internal/os/ZygoteServer.javaRunnable runSelectLoop(String abi...

2019-04-28 15:16:17 437

原创 Android Zygote

Android 启动Android 底层是 Linux 系统,Linux 启动后的第一个进程是 init, init 通过 init.rc 配置文件启动一系列的进程,其中 zygote 进程是 Android 系统的核心,是一个 Android 进程的孵化器,所有 Android 进程都是基于这个进程克隆出来的,包括 system_service。initinit.zygot...

2019-04-28 15:12:52 283

原创 PHP HTTP请求签名

请求url通常需要附带签名参数,以防被篡改。通常是md5生成指纹, 后端通过同样的方法进行验证。

2017-07-10 15:44:33 1103

原创 PHP HTTP添加自定义头

一般客户端和服务器传递数据都通过请求参数,很少添加自定义头。服务器端将头放在全局数据_SERVER里,参数都以HTTP开头,例如:客户端在http头里添加了SSOTK参数, 服务器端可这样读取:if(array_key_exists('HTTP_SSOTK', $_SERVER)) {$token = $_SERVER['HTTP_SSOTK'];}可以打印_SERVER,看看都有哪些内容:fo

2017-07-10 15:43:39 2469

原创 PHP date, time, microtime

time() Unix时间戳(1970为0),单位为秒。 microtime() 以 “msec sec” 的格式返回一个字符串,其中 sec(时间戳),msec 是微秒部分。date() 格式化时间,默认时间是time()。ps: s(秒)、ms(毫秒)、μs(微秒)、ns(纳秒),其中:1s=1000ms,1 ms=1000μs,1μs=1000nstime()<?phpecho time()

2017-07-10 15:42:55 884

原创 PHP parse_str 解析字符串

parse_str() 函数把查询字符串解析到变量中,主要用于页面之间传值(参数)。

2017-07-10 15:42:15 870

原创 PHP explode 和 implode 用法

explode() 函数把字符串分割为数组;implode() 函数把数组元素组合为一个字符串。

2017-07-10 15:41:10 3244

原创 Kotlin 单例

单例的实现方法,可以通过同伴对象,或者 lazy。

2017-06-01 16:00:39 4317

原创 Kotlin 注解

Kotlin 的注解完全兼容 Java 的注解。

2017-06-01 15:59:59 3461

原创 Kotlin 反射

反射是语言与库中的一组功能, 可以在运行时刻获取程序本身的信息。

2017-06-01 15:59:22 1464

原创 Kotlin 泛型

Kotlin 支持泛型, 语法和 Java 类似。

2017-06-01 15:58:42 635

原创 Kotlin 集合

与 Java 不同, Kotlin 明确地区分可变的和不可变的集合(list, set, map, 等等)。可变的集合可以增删改集合元素;而不可变集合也提供了相应的方法,但是指向会创建新的集合,而不是在原来的集合上修改。Kotlin 的集合都在命名空间 kotlin.collections。Arrays数组通过 arrayOf()创建。ListsMaps和 Java 的一样, 存储键值对。

2017-06-01 15:58:01 605

原创 Kotlin 高阶函数 与 Lambda 表达式

高阶函数(higher-order function)是一种特殊的函数, 它接受函数作为参数, 或者返回一个函数. 这种函数的一个很好的例子就是 lock() 函数.

2017-06-01 15:57:21 943

原创 Kotlin 标准库扩展函数

Kotlin 标准库提供了一些扩展 Java 库的函数。apply, let, with, run, require

2017-06-01 15:56:27 1884

原创 Kotlin 扩展

Kotlin 提供了向一个类扩展新功能的能力, 而且不必从这个类继承, 也不必使用任何设计模式, 比如 Decorator 模式之类. 这种功能是通过一种特殊的声明来实现的, Kotlin 中称为 扩展(extension). Kotlin 支持 扩展函数(extension function) 和 扩展属性(extension property)。

2017-06-01 15:55:21 1013

原创 Kotlin 异常处理

Kotlin 的异常和 Java 的一样, try…catch…finally代码块处理异常,唯一一点不同是:Kotlin 的异常都是 Unchecked exceptions。

2017-05-25 15:25:34 5597

原创 Kotlin 范围

范围是指开始值和结束值之间的区间,所有可以比较的类型都可以创建范围,范围通过关键字..定义。可以用in来测试一个值是否在某个范围内, in是通过比较来确定是否在范围内。

2017-05-25 15:24:23 806

原创 Kotlin 对象

Kotlin 没有静态类的概念, 但是命名对象可以实现静态类,伴随对象可以实现静态方法。

2017-05-25 13:38:15 350

原创 Kotlin 接口

和 Java 的接口相差不大, 有两个区别: 1. 接口中可以有方法的实现。 2. Java 接口中的属性是常量, Kotlin 是可以被覆盖的属性。

2017-05-25 13:37:34 327

原创 Kotlin 可见度

Java 可见度有public, package, protected, private, 默认是 package。 Kotlin 也提供了4种:public, internal, protected, private, 默认是 public。private 表示只在这个类(以及它的所有成员)之内可以访问;protected 与 private 一样, 另外在子类中也可以访问;

2017-05-25 13:36:45 321

原创 Kotlin 类属性

属性和 Java 类似, 可以是 var 或者 val, 可以加可见性修饰符。

2017-05-25 13:35:58 661

原创 Kotlin 类

Kotlin 和 Java 兼容, 面向对象的相关概念一致, 类的定义、继承、成员等和 Java 区别不大,Kotlin 的写法比 Java 简洁一些。类中可包含函数、属性、内部类、伴随对象。

2017-05-25 13:35:10 448

原创 Kotlin 空指针

针对空指针问题, Kotlin有专门的针对语法以避免问题。

2017-05-25 13:34:28 571

原创 Kotlin 控制流

和Java一样, Kotlin 支持常用的控制流: if else, for, while, when, break, continue 等。 if else, for, while, break, continue 和 Java 的类似, 不再赘述。 Kotlin 不提供 switch, 但是提供了增强版的 when 替代 switch。

2017-05-25 13:33:33 363

原创 Kotlin 类型

类型推断Kontlin 和 Java 一样,是强类型语言,但 Kotlin 支持类型推断,变量和方法,如果可以推断出类型,可以省略类型。

2017-05-25 13:32:50 945

原创 Kotlin 变量和方法

变量Kotlin 有两个关键字定义变量:var 和 val, 变量的类型在后面。 var 定义的是可变变量,变量可以被重复赋值。val 定义的是只读变量,相当于java的final变量。

2017-05-25 13:32:02 1415

原创 Kotlin 和 Java 相互调用

Kotlin 的设计过程中就考虑到了与 Java 的互操作性。在 Kotlin 中可以直接调用既有的 Java 代 码, 反过来在 Java 中也可以很流畅地使用 Kotlin 代码。Kotlin 调用 Java大多数Java代码,可以直接调用import java.util.*fun demo() { val list = ArrayList<string>() list.add

2017-05-25 13:30:59 11159

原创 Kotlin 数组容器

Kotlin 标准库提供了顶层方法创建arrays, lists, maps

2017-05-25 13:30:04 877

原创 Kotlin 类、对象、接口

Kotlin中类、接口相关概念与Java一样,包括类名、属性、方法、继承等.

2017-05-25 13:28:53 905

原创 Kotlin 基础语法

Kotlin 常用基础语法: 包、类型、变量、方法、控制流等

2017-05-25 11:34:18 334

原创 Hello World With Kotlin

Kotlin 和 Java 一样,可以在PC上运行,可以用IDEA进行开发,环境配置参考Getting Started with IntelliJ IDEA。 官方提供了一个学习网站,可以运行一些例子Kotlin。 也可以通过命令行的方式编译运行,参考Working with the Command Line CompilerPCfun main(args: Array<String>) {

2017-05-25 11:33:22 360

原创 Use Kotlin Android Extensions

kotlin-android-extensions用于扩展绑定关系,为了解决findViewById()的问题。背景Android开发中,findViewById()是比较烦人的一个函数,开源界已经有几个库提供了解决办法,比如:ButterKnife,DataBinding等。kotlin-android-extensions插件提供了一种方便的解决办法, 不用增加额外的代码,直接使用xml中定义的

2017-05-25 11:32:16 989

原创 Start With Kotlin On Android

Android Studio 3.0 内置支持 Kotlin, 请安装3.0以上的 Android Studio。

2017-05-25 11:31:25 534

详细的蓝牙协议中文资料

蓝牙协议有关技术的详细描述,中文版本,详细介绍蓝牙协议的各个部分

2011-04-12

空空如也

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

TA关注的人

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