自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(168)
  • 资源 (8)
  • 收藏
  • 关注

原创 Failed to find configured root that contains 安装apk报错

Failed to find configured root that contains问题修复,修改root-path

2022-12-27 18:10:25 988 1

原创 VUE&Element 学习笔记

Vue指令,生命周期,Element使用入门

2022-12-25 20:44:16 875

原创 Filter Listener Ajax学习笔记

filter, listener, ajax, axios学习笔记及示例

2022-12-18 22:55:06 526

原创 Cookie&Session 学习笔记

Cookie & Session使用示例

2022-12-11 22:52:55 1116

原创 Jsp 学习笔记

Jsp EL表达式与JSTL标签入门实践,及使用jsp获取server数据并展示的示例。

2022-12-02 18:28:01 403

原创 Servlet之Request&Reponse 学习笔记

Servlet之Request,Response学习及示例Demo

2022-11-15 16:51:43 399

原创 Tomcat 学习笔记

tomcat的使用,Idea创建tomcat工程, Servlet简介

2022-10-27 18:35:38 679

原创 JavaScrip 学习笔记

JavaScript入门练习,Js语法,Bom,Dom, 表单

2022-10-20 17:50:37 924

原创 HTML 学习笔记

html标签入门

2022-10-12 20:52:49 217

原创 MyBatis 学习笔记

Mybatis入门及增删改查

2022-10-11 19:52:40 2544

原创 Jdbc 学习笔记

jdbc的使用练习

2022-10-08 19:53:17 429

原创 Mysql 学习笔记(二)

MySql 约束,数据库表关系,多表查询,事务等数据库操作示例

2022-09-28 19:12:52 522

原创 MySql 学习笔记(一)

MySql 操作表,操作数据,查询数据示例

2022-09-26 21:05:05 539

原创 gradle 自定义Extension

创建和使用android自定义plugin中的extension

2022-07-25 16:36:38 538

原创 git 报错 .git/hooks/: No such file or directory

.git下没有hooks文件夹时,执行git init

2022-07-19 20:17:51 3671

原创 groovy文件中找不到java类

android studio中groovy文件不识别java类问题修复

2022-07-14 17:45:19 1059

原创 发布并引入本地gradle插件

自定义gradle插件使用指南

2022-07-13 20:49:45 3126

原创 Android 插件化实践

文章目录1 动态加载apk2 Hook AMS3 动态代理startActivity()4 Hook ActivityThread#Handler5 动态代理 handleMessage()1 动态加载apkActivity初始化时,使用DexPathLoader动态加载apk@Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceS

2021-03-12 20:22:36 351

原创 Android 从进程角度看Service启动流程

本文基于Android api 26主要从进程角度记录启动Service的流程文章目录1 第一次跨进程调用:ContextImpl ---> AMS1.1 AMS中的startService()1.2 ActivityThread启动新进程2 第二次跨进程调用:ActivityThread ---> AMS2.1 AMS中的attachApplication()3 第三次跨进程调用: AMS ---> ApplicationThread3.1 ActiveServices中的realS

2021-03-11 20:06:22 485

原创 Android框架 DiskLruCache源码分析

缓存的文件结构1 初始化1 DiskLruCache的创建 DiskLruCache.open(cacheDir, 1, 1, 1024 * 1024 * 10);通过静态方法open()来创建DiskLruCache对象public static DiskLruCache open(File directory, int appVersion, int valueCount, long maxSize) throws IOException { //

2021-03-11 20:05:58 422

原创 Android框架 EventBus源码分析

文章目录1 两个Map1 subscriptionsByEventType2 typesBySubscriber2 订阅过程1 封装并获取SubscriberMethod集合2 添加到订阅者集合中3 总结:3 发送事件过程1 发送事件调用栈2 事件执行的线程1 两个Map首先理解两个HashMap对象的用途。1 subscriptionsByEventType表示同一个事件被多少个订阅者订阅用途:1 通过事件类型,找到所有的订阅者,然后将此事件发送给所有的订阅者。 private final

2021-03-11 20:05:25 337

原创 Android 使用OpenGL添加滤镜

Render回调方法记录初始化日志CommonRender: onSurfaceCreatedCommonRender: onSurfaceChangedCommonRender: onDrawFrameCommonRender: onDrawFrame渲染时日志,三个回调方法不断循环CommonRender: onFrameAvailableCommonRender: onDr...

2021-03-11 20:04:28 956

原创 Android 应用启动流程

本文中的native层源码为1.6版本文章目录1 Zygote简介2 由app_process运行ZygoteInit class2.1 创建AppRuntime对象2.2 调用AppRuntime对象2.3 创建Dalvik虚拟机2.4 运行ZygoteInit类3 Zygote类的功能3.1 绑定/dev/socket/zygote套接字3.2 加载应用程序Framework中类与平台资源3.3 运行SystemServer3.4 运行新Android应用程序1 Zygote简介虚拟机启动耗时

2021-02-02 17:15:47 582

原创 Kotlin实战(四) Kotlin的类型系统

文章目录1 可空性1.1 可空类型1.2 类型的含义1.3 安全调用运算符: “?.”1.4 Elvis运算符: “?:”1.5 安全转换: “as?”1.6 非空断言:“!!”1.7 “let”函数1.8 延迟初始化的属性1.9 可空类型的拓展1.10 类型参数的可空性1.11 可空性和java2 基本数据类型和其他基本类型2.1 基本数据类型:Int,Boolean及其他2.2 可空的基本数据类型:Int?,Boolean?及其他2.3 数字转换2.4 “Any”和“Any?”:根类型2.5 Uint类

2020-09-02 16:28:51 733

原创 Kotlin实战(三) 类,对象和接口

文章目录1 定义类继承结构1.1 Kotlin中的接口1.2 open, final和abstract修饰符1.3 可见性修饰符:默认为public1.4 内部类与嵌套类:默认是嵌套类1.5 密封类:定义受限的类继承结构2 声明一个带默认构造方法或属性的类2.1 初始化类:主构造方法和初始化语句块2.2 构造方法:用不同的方式来初始化父类2.3 实现在接口中声明的属性2.4 通过getter或setter访问支持字段2.5 修改访问器的可见性3 编译器生成的方法:数据类型和类委托3.1 通用对象方法3.2

2020-09-02 16:00:15 402

原创 Kotlin实战(二) 函数的定义与调用

1 在kotlin中创建集合2 让函数更好调用2.1 命名参数2.2 默认参数值2.3 顶层函数和属性3 扩展函数和属性3.1 导入和扩展函数3.2 从java中调用扩展函数3.3 作为扩展函数的工具函数3.4 不可重写的扩展函数3.5 扩展属性4 可变参数,中缀调用和库的支持4.1 扩展java集合的api4.2 可变参数4.3 键值对的处理5 字符串和正则表达式的处理5.1 分割字符串5.2 正则表达式和三重引导的字符串5.3 多行三种引导的字符串6 局部函数和扩展

2020-09-02 15:59:31 906

原创 Kotlin实战(一) 基础

文章目录1 函数和变量1.1 hello world1.2 函数1.3 变量1.4 字符串模板2 类和属性2.1 属性2.2 自定义访问器2.3 目录和包3 枚举和when3.1 声明枚举类3.2 使用“when”处理枚举类3.3 在“when”结果中使用任意对象3.4 使用不带参数的“when”3.5 和并类型检查和转换3.6 用"when"代替"if"3.7 代码块作为"if"和"when"的分支3 while和for循环4 kotlin中的异常1 函数和变量1.1 hello worldfun

2020-09-02 15:58:22 834

原创 Android 使用AIDL实现进程间通讯

文章目录1 启动远端service进程1.1 首先创建ServiceConnection对象2.2 绑定Service3.3 在service中创建并返回Binder2 IBookManager结构2.1 整体结构2.2 完整IBookManager类2.3 IBookManager中的抽象函数2.4 IBookManager中的内部抽象类Stub2.4.1 Stub类结构2.4.2 Stub的标识2.4.3 asInterface()方法2.4.52.5 Stub中的静态内部类Proxy1 启动远端se

2020-07-12 23:08:24 367

原创 C++基础(五) 多态

文章目录1 多态示例2 虚析构函数3 多态的原理3.1 虚函数表和vptr指针3.2 证明vptr指针的存在3.3 vptr指针的初始化时机3.4 父类指针和子类指针的步长4 纯虚函数和抽象类1 多态示例#include <iostream>using namespace std;class Hero{public: //1 多态的必要条件1:要有virtual修饰的虚函数 virtual int getAd() { cout <&l

2020-05-15 14:22:58 209

原创 C++基础(四) 继承和派生

文章目录1 类和类之间的关系2 继承的访问方式1 类和类之间的关系#include <iostream>using namespace std;class A{public: void funcA() { cout << "funcA()" << endl; }};// 1 包含关系 B has Aclass B{public: void funcB() { a.funcA

2020-05-14 13:48:54 366

原创 C++基础(三) 类和对象

1 类和对象#include <iostream>using namespace std;//定义一个类struct Hero{public: int sex; char name[64];};class AdHero{public: int sex; char name[64]; void printHero() { cout << "性别: " << sex <&l

2020-05-12 18:47:36 406

原创 C++基础(二) C++对C语言的拓展

文章目录1 引用1.1引用的基本概念1.2 引用作为函数参数2 内联函数3 默认参数和占位参数4 函数重载1 引用1.1引用的基本概念#include <stdio.h>#include "iostream"using namespace std;int main(){ int a = 10; int *p = &a; *p = 20;...

2020-05-09 14:11:45 786

原创 C++基础(一) C++对C语言的增强

文章目录1 Hello World2 命名空间 namespace2.1 命名空间的使用1 直接用std::cout 方式2 使用using namesapce std 方式3 使用std::cout2.2 自定义命名空间(1) 定义一个命名空间(2) 命名空间嵌套3 C++语言的增强(1) 实用性增强1 对于变量定义的位置可以随用随定义2 对全局变量的检测能力加强3 使用struct时 不需要再...

2020-04-09 21:01:55 849

原创 Linux基础(六) 系统IO函数

使用file命令看文件格式文章目录1 打开文件2 创建文件3 文件权限的计算方式4 判断文件已经存在5 将文件截断为0root@iZ2ze9ftqv2b7zbety6qd8Z:~/learn_makeFile# file appapp: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, in...

2020-01-28 23:53:57 648

原创 Linux基础(五) makefile

makefile的规则规则的三要素文章目录1 一个简单的makefile示例2 根据.o来编译3 提取makefile中的变量4 makefile中的函数5 删除.o6 命令执行失败时继续向下执行本文主要介绍makefile的编写。1 一个简单的makefile示例创建一个makefile文件,并添加如下内容app:main.c add.c sub.c mul.c gcc main.c...

2020-01-28 23:53:32 246

原创 Linux基础(四) gcc

1 gcc的编译过程从sum.c到生成可执行程序的过程首先定义一个sum.c文件#include <stdio.h>#include "head.h"#define DEBUGint main(void){ int a = NUM1; int aa; int b = NUM2; int sum = a + ...

2020-01-26 23:34:20 1116

原创 Linux基础(三) Vim

1 vim 命令模式vim是vi发展过来的工作模式:1 命令模式2 编辑模式3 末行模式H:前J:上K:下L:后0:行首$:行尾gg:文件开始位置文件末尾:G100G:跳转到100行1.1 删除x:删除光标后面的X:删除光标前面的u:撤销d0:删除光标前面的内容d$:删除光标后面的内容D:删除光标后面的内容dd:删除并复制当前行dw:删除单词d4:...

2020-01-26 23:33:40 181

原创 Linux基础(二) ftp nfs ssh scp

1 ftp1.1 ftp服务器搭建1 首先安装ftp服务器apt-get install vsftpd2 可以查看到有vsftpd的配置文件root@iZ2ze9ftqv2b7zbety6qd8Z:/etc# ls -l vsftpd.conf打开配置文件,并修改如下几项允许匿名登录anonymous_enable=YES实名用户拥有写权限(这一行是被注释的,打开注释)w...

2020-01-26 23:32:41 497

原创 Linux基础(一) Linux命令

a 日期yeliangdeMacBook-Pro:~ yeliang$ date2020年 1月21日 星期二 22时38分51秒 CSTb bash的含义b:伯恩 a:aganin sh:shellc shell命令被终端识别的命令4 命令解析器根据命令的名字,调用可执行的程序shell —> unix操作系统bash —> Linux操作系统1 Linux下...

2020-01-26 23:32:22 465

原创 Android 使用RtmpDump推流

1 总结构图2 音频采集3视频采集

2020-01-07 09:13:25 1035 1

Bean转JSON

支持Bean转JSON List<> 转JSON

2017-07-04

修改便以文件后缀名

修改。so后缀名

2017-06-29

编译ffmpeg用的工具

Ubantu 系统编译ffmpeg用的工具

2017-06-28

Android图片加载框架

Android图片加载框架类似Glide

2017-04-21

Android网络请求框架01

这一版本只支持json数据的网络请求

2017-04-18

安卓数据库框架

简单好用的安卓数据库框架

2017-04-10

二叉树相关

二叉树迭代非迭代遍历 反向创建二叉树 创建查找二叉树 查找二叉树的查找和删除

2017-02-25

二叉树遍历和获取树高和结点数

二叉树的迭代前中后序遍历 和非迭代的遍历 获取二叉树的高度和结点数

2017-02-25

空空如也

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

TA关注的人

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