自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 Flutter调用android原生方法

第一步:android原生代码示例a:先创建一个类(可以将不同的功能分别放到不同的类中)class AppUtils: MethodChannel.MethodCallHandler { companion object{ //声明注册的方法 const val CHANNEL = "huang/method" var methodChannel: MethodChannel? =null fun registerWith(b

2020-10-10 11:07:30 2570 1

原创 kotlin和java混合模块开发时,kotlin中和java中Arouter的配置方式

前提 项目结构: app作为应用模块 (kotlin模块),book作为库模块(java模块),base(java模块)作为顶层配置模块 模块关系:app和book都依赖base这个模块1.Arouter配置1.1在base模块的bulid.gradle中添加依赖配置 //arouter引入 api 'com.alibaba:arouter-api:1.5.0' a...

2019-06-14 09:51:13 1421

原创 数据库学习(1)

逻辑空间1.显示所有的数据库逻辑空间:SHOW DATABASES2.创建数据库逻辑空间:CREATE DATABASE demo3.删除数据库逻辑空间:DROP DATABASE demo创建数据表1.执行这个语句,表示将在test的逻辑空间下进行相应的操作2.创建一张表3.写入数据4.一些基本的语句5.基本的数据类型6.往已有的表中新增字段7.修改表中某个字段内部信息8.修改表中某个字段的名称8.删除表中某个字段(列)...

2021-06-28 20:23:33 104

原创 Gradle学习(一)

第一步:在androidManifest<meta-data android:name="channel" android:value="${channel_value}"/>第二步:配置gradle中的基本信息 //产品维度,没有实际意义,但是gradle需要 flavorDimensions 'default' //定义各个渠道 productFlavors{ baidu {} xiaomi {}

2021-05-10 13:52:20 307

原创 android中的几种常用的架构复习

1.什么是MVC a:其实我们日常开发中的activity,Fragment和xml界面就相当于是一个MVC的架构模式,但是往往Activity中需要处理绑定UI,用户交互,以及数据处理 b:这种开发方式的缺点就是业务量复杂的时候一个activity过于臃肿,但是页面不复杂的情况下使用这种模式相对就比较简单了 View:xml实例化 Mode:数据获取那一层 Controller:Activity/Fragment:业务逻辑和一些布局初始化都在这...

2021-05-06 14:32:57 110

原创 设计模式复习

一:单例模式 a:饿汉单例模式 java写法://饿汉单例模式private static HotFix mHotFix = new HotFix();public static HotFix getInstance(){ return mHotFix} kotlin写法:这种直接创建类文件的方式实际上转换成java时和上面的代码几乎一样object HotFix {}b懒汉单例模式 java的写法: //饿汉单例模式 ...

2021-04-28 13:55:17 73

原创 android类加载

1.什么是双亲委派(本质就是个递归调用的流程) a:android在加载.class文件的时候,我们都知道是通过classLoader进行加载的,但是classLoader也是有很多类型的,它会每级递归向上委托给父类加载器classLoader进行加载,如果加载过,就不再加载 (CustomClassLoader->PathClassLoader->BootClassLoader):比如我们创建了CustomClassLoader时,如果没有在它构造方法中传递父clas...

2021-04-27 14:26:51 157

原创 android的消息机制

前置:一个线程一个looper,1个looper一个messageQueue,一个messageQueue对应多个Message;一个messageQueue可以对应多个handler(一般消息队列中Looper是一个无限循环的操作,但是当队列中没有消息时,会阻塞沉睡,等待有消息时被唤醒)一:messageQueue:它是一个单项的链表,方便插入,删除,里面存了很多个message,每个message都相当于一个链表上的点,通过Message中的next指向下一个消息, 不管是通过sendM...

2021-04-26 17:06:14 77

原创 kotlin的协程复习

一:使用场景:1.异步回调嵌套 2.并发流程控制二:创建协程的常用方法val job:Job = GlobalScope.launch (Dispatchers.Main){ }val async:Deferred<Unit> = GlobalScope.async(Dispatchers.Main) { }//Deferred其实就是Job的子类,实际上就是增加了个wait方法,能够让当前协程暂时挂起,暂停往下执行.当await方法有返回值后,会恢复协程往下执行job.s

2021-04-25 16:51:16 127

原创 android线程复习

一:线程创建的几种方式 a:new Thread(newRunable(){}).start(),这种方式创建方式如果过多的话,会可能导致死机和oom b:AsyncTask来创建线程,它里面有三种执行方法(AsyncTask已经被废弃) 1)execute(),这里面试串行执行的,所以创建的多时.某个线程出问题就会阻塞 2)executeOnExecutor() 3)AsyncTask.THREAD_POOL_EXECUTOR.execut...

2021-04-22 20:17:58 75

原创 recyclerView的学习

1.手势流程流程:inputEventRecevier->viewRootImpl->decorView->activity->window->phonewindow->ViewGroup->View2:reyclerView的缓存可以包含四级,可以通过以下方法进行优化 a:不需要重新bindViewHolder,从名字可以看出,缓存在这里面的Holder就不需要回收,因为有可能还要被使用 ArrayList<ViewHolde...

2021-04-21 17:43:10 67

原创 android的启动流程学习

第一部分:1.启动一个app,从framework层中的init.rc进程方法开始,在这个方法里有一个参数pid,代表的是主线程还是子线程来的,1是主线程,通过这个来创建我们的孵化器Zygote2.Zygote的作用主要分为两个方面: a:创建SystemServer: 1.ActivityManagerService 2.WindowManagerService 3.PowerManagerService 4.InputyManagerService b:孵化应用进程3.Zy...

2021-04-21 16:37:44 75

原创 react-ts(笔记1)

1.创建react-ts项目,使用如下命令行创建npx create-react-app my-app-ts --template typescript2.熟悉大致的配置文件tsconfig.json{ "compilerOptions": { "noImplicitAny": false,//不需要显示的声明变量any "target": "es5",//编译后的目标版本 "lib": [//这个是表示编译期间要包含进来的库 "dom",

2021-04-01 17:59:23 87

原创 android复习之AIDL

1.AIDL的基本作用:AIDL是Android中IPC方式中的一种,AIDL是Android Interface definition language的缩写,它的作用就是用来和绑定其他应用的service来实现两个应用之间的通讯2.服务端主要实现以下几个步骤 a.创建aidl文件,as会自动给你生成一个列子 b.编写服务端代码,在aidl文件中编写代码getName(),并且rebuild一下c.编写提供方法的Service,并且在AndroidManifest中...

2021-03-09 15:30:26 107

原创 算法基础学习

1.冒泡排序: 一般是指对一串数字进行升序或者降序,依次比较相邻的两个数字,顺序错乱则交换位置,一直遍历比较,直到相邻的两个元素不需要交换位置就停止. 基础代码: int[] array = {4,2,21,7,13,11};//第一次遍历5次,第二次遍历4次,每次最后一个不需要遍历for (int i = 1; i < array.length; i++) { for (int j = 0; j < array.length...

2020-07-09 17:20:19 133

原创 TextView比较常用的属性

  a)android:lineSpacingExtra:             介绍:设置行距的属性,这是为了优化文字显示,我们可以通过这个属性             属性:取值范围:正数、负数和0,正数表示增加相应的大小,负数表示减少相应的大小,0表示无变化       b)android:lineSpacingMultiplier:             介绍:设置行间距倍数,功能同上...

2018-04-27 17:36:50 271

原创 查找本地所有视频,选择视频上传到服务器

1.在这里上传视频到服务器用的是xutils3.0,当然大家也可以用okhttp进行操作. 第一步:我们就是要从我们app的视频列表,进入我们查询本地视频的那个activity,代码如下: Intent i = new Intent(SelectVideoActivity.this, GetVideoActivity.class); startActivityForResult(i,

2017-04-14 09:12:42 4430

原创 android中activity启动模式遇到的坑

写这些东西其实是我要离职,正在重新复习以前的东西,并且将自己在前一家公司遇到的一些问题记录下来.先大致的来了解一下android中4中启动模式:standard:这种启动模式对于我们的activity来说是最常用的,不进行配置也默认是这种启动模式,这种启动模式就是每一次启动activity都会创建一个activity的实例,并将它放到栈中(startactivity()).singleTop:这

2017-04-13 15:20:33 614

原创 网易云视频直播推流集成大致过程

最近刚来到一家新公司,接手的第一个项目是做一款教育直播app(教师端),而我负责的是教师端的,也就是推流那个端的.由于没有接触过这类的项目,怕接入网易云时碰到bug不知道如何解决,所以一段时间内沉浸在电脑的世界里,查找资料,查看直播的原理.直播的原理我就不在大神面前装来,直接附上本人认为好的博客,他写了3篇,写的非常详细,可认真的研究下:风从影系列的博客:http://www.jianshu.co

2017-03-27 16:05:36 2664

原创 1分钟配置沉浸式

今天开始对自己做好的一个项目尽心优化,,为每一个界面的状态栏添加各自页面透明的颜色,这么多界面并且可以要自己定义状态栏的颜色,这肯定需要我们去对沉浸式进行一定的包装,所以写了一个简单的工具类.第一步:导入第三方库: compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'第二步:对你所需要设置的界面布局的最顶层布局添加下

2017-03-16 11:06:12 262

原创 okHttp3的用法及介绍

1.okhttp官网地址:http://square.github.io/okhttp/ 2. github中okhttp的链接路径[https://github.com/square/okhttp]okhttp的特点: * 支持HTTP/2 和 SPDY* 默认支持 GZIP 降低传输内容的大小* 支持网络请求的缓存* 当网络出现问题时,自动重试一个主机的多个 IP 地址3.okHttp

2016-12-17 12:22:07 546

原创 线程池的参数解析及简单创建

a.corePoolSize: 核心线程数,能够同时执行的任务数量b.maximumPoolSize:除去缓冲队列中等待的任务,最大能容纳的任务 数(其实是包括了核心线程池数量)c.keepAliveTime:超出workQueue的等待任务的存活时间,就是指maximumPoolSize里面的等待任务的存活时间d.unit:时间单位e.workQueue:阻塞等待线程的队列,一般使用new L

2016-12-12 17:18:30 1902

原创 Dragger2的简单使用

a.什么是依赖:假设有2个类,在类B中有类A的实例,这时我们就说,B对A产生了依赖 public class Dog { … Cat cat; … public Dog() { cat = new Cat(); } } 分析:上面这个例子我们不难发现,有很大

2016-12-12 12:45:04 700

空空如也

空空如也

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

TA关注的人

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