- 博客(75)
- 资源 (5)
- 收藏
- 关注
转载 OKHttp源码详解
首先大概看一下整个流程图:接下来讲解的思路将根据这个流程来。一、创建一个OkHttpClient对象: OkHttpClient client = new OkHttpClient();二、怎么不见Builder呢?看下OkHttpClient的构造函数,其中new Builder(),这里采用了默认配置。OkHttpClient.Builder成员有很多
2017-11-30 15:39:15 243 1
原创 JVM详解
JVM整体结构:第一个模块:通过JVM IDE将.java文件生成.class文件。具体的编译流程:核心就是对源文件的词法和语法进行一个分析。第二个模块:类加载器的子系统,将class文件的字节码加载到jvm对应的虚拟机内存中。类加载器的核心是classLoader,classLoader又是动态跟新的核心。JVM提供了所有classLoader,既以下四种:Bo
2017-11-14 20:06:51 1624 4
原创 dex文件与class文件如何生成
一、dex文件与class文件如何生成Class文件:可以被JVM所识别的文件。记录一个类文件的所有信息。文件结构:a)一种8位字节的二进制流文件。 b)各个数据按顺序紧密的排列,无间隙。 c)每个类或接口都单独占据一个class文件。Dex文件:可以被DVM所识别的文件。记录整个工程所有类的信息。文件结构:a)一种8位字节的二进制流文件。 b)各个数据按顺序紧密
2017-11-14 20:04:26 1331 1
转载 彻底弄懂HTTP缓存机制及原理
http://www.cnblogs.com/chenqf/p/6386163.html第一次请求数据时,时序图: 关于返回的缓存规则:HTTP缓存有多种规则,根据是否需要重新向服务器发起请求来分类,我将其分为两大类(强制缓存,对比缓存) 1、强制缓存 2、对比缓存 区别:强制缓存如果生效,不需要再和服务器发生交互,而对比缓存不管是否生效,都需要
2017-10-22 20:42:26 357
原创 ImageLoader原理分析
ImageLoader的实现:· 图片压缩· 内存缓存· 磁盘缓存· 网络拉取图片· 图片的同步加载· 图片的异步处理一、图片压缩功能的实现:通过采用BitmapFactory.Options来压缩图片,主要是用到了它的inSampleSize参数,当inSampleSize为1时,采样后的图片大小为原始图片大小;当inSampleSize大于1时,比如为2,那么采
2017-10-20 21:39:37 977
原创 Leetcode算法-求根节点到叶节点数字之和
树中每个节点都存放有一个。计算从根节点到叶节点生成的。给你一个二叉树的根节点。是指没有子节点的节点。
2023-08-12 18:05:59 141
原创 Leetcode算法-岛屿的周长
岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100。计算这个岛屿的周长。方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。
2023-08-06 19:37:53 119
原创 Leetcode算法--岛屿数量
岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。视频讲解:https://b23.tv/z9xkMal。(水)组成的的二维网格,请你计算网格中岛屿的数量。此外,你可以假设该网格的四条边均被水包围。
2023-08-06 19:33:29 272
原创 Leetcode算法--合并区间
一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。表示若干个区间的集合,其中单个区间为。请你合并所有重叠的区间,并返回。
2023-08-06 19:04:33 242
原创 Leetcode算法--最大数
重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。输出结果可能非常大,所以你需要返回一个字符串而不是整数。
2023-08-06 18:59:50 226
原创 Android APP Bundle
使用 Play 核心库,您的应用日后可以请求将这些模块下载为动态功能 APK。通过 Dynamic Delivery,Google Play 只会将该模块的代码和资源提供给设备。App bundle 与 APK 的不同之处在于,您无法将其部署到设备。相反,它是一种上传格式,可将您应用的所有经过编译的代码和资源都包含在一个编译工件中。因此,在您上传已签名的 app bundle 后,Google...
2020-03-18 17:02:11 283
原创 Android插件化 免安装加载Activity
接上篇https://blog.csdn.net/j18874964028sss/article/details/104860086Plugin端需要被启动的PluginActivitypublic class PluginActivity extends AppCompatActivity { @Override protected void onCreate(Bundl...
2020-03-15 21:11:58 218
原创 Android插件化 类加载器DexClassLoader
方式一:从已安装的apk中读取,必须要有一个activity,且需要配置ACTION。利用这种方式获取插件信息,然后来构建classLoader加载类。插件APP代码:AndroidManifest.xml<intent-filter> <action android:name="com.jiangshuai.pluginone"/></in...
2020-03-14 14:37:20 264
原创 Android gradle命令集
查看所有的projectthis.getProjects()def getProjects() { println '-----------------------' println 'projects' println '-----------------------' this.getAllprojects().eachWithIndex { Projec...
2020-01-20 15:37:13 279
原创 自定义Gradle Plugin插件
new 'Android Library'model : 我取名为pluginone 修改pluginone model的build.gradle文件apply plugin: 'groovy'apply plugin: 'maven'dependencies{ // gradle sdk implementation gradleApi() // groov...
2020-01-15 17:45:31 168
原创 Android Flutter Native笔记
在native中add flutter fragment方法1:// Get a reference to the Activity's FragmentManager to add a new // FlutterFragment, or find an existing one. FragmentManager fragmentManager = getSupport...
2020-01-12 16:20:45 2828
转载 Android Flutter Dialog笔记
void main() => runApp(MyApp());class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: Theme...
2020-01-12 00:32:20 314
转载 RXJava记录
1、单例参考写法:public static RxBus getRxBus() { if (rxBus == null) { synchronized (RxBus.class) { if(rxBus == null) { rxBus = new RxBus(); } }...
2020-01-10 14:58:16 153
原创 Handler机制详细解
本文主要从Handle、Looper、Message、MessageQueue这四个方面进行讲述。一、首先看一下Message源码1、Message的成员变量有: public int what; public int arg1; public int arg2; public Object obj; public Messenge...
2019-01-12 18:43:36 328 1
转载 webview
Cache-Control与 Last-Modified 一起使用;Expires与 Etag一起使用;没有更新回包304,有更新回包200参考:https://blog.csdn.net/carson_ho/article/details/71402764https://juejin.im/entry/58ba3302570c350062124f68https://blog.csdn....
2019-01-07 21:04:01 188
转载 webview截取全屏
/storage/emulated/0/ 这个路径表达的就是sd卡路径。可以用 adb shell去查看手机某路径下文件情况 cd /storage/emulated/0/Android/data/com.example.jiangshuai.scropimage/cachels全屏截取webview,并将图片保存到本地package com.example.jiangshua...
2018-12-22 19:43:49 374
原创 Android view
package com.example.jiangshuai.testview;import android.app.Activity;import android.content.res.Resources;import android.graphics.Rect;import android.os.Bundle;import android.support.v7.app.AppC...
2018-11-04 19:09:17 174
原创 设计模式:代理模式
定义:为一个对象提供一个替身或占位符以控制对这个对象的访问。下面我们来详细的看一下类图:首先是ISubject,它为RealSubject和Proxy提供了接口。通过实现同一接口,Proxy在RealSubject出现的地方取代它。RealSubject是真正做事的对象,它是被Proxy代理控制访问的对象。Proxy持有RealSubject的应用。客户和RealSubject的交互必须通过Pro...
2018-07-07 22:06:04 240
原创 设计模式:装饰者模式
定义:动态的将责任附加到对象上。若要拓展功能,装饰者提供了比继承更有弹性的替代方案。设计初衷:通常可以使用继承来实现功能的拓展,如果这些需要拓展的功能种类很繁多,那么势必生成很多子类,增加系统的复杂性;同时,使用继承实现功能拓展,我们必须可预见这些拓展功能,这些功能是编译时就确定了,是静态的。设计目标:允许类容易拓展,在不修改现有代码的情况下,搭配新的行为。要点:装饰者和被装饰者拥有共同的超类(基...
2018-05-17 22:20:34 162
原创 秋招Android面试总结:美团、携程、百度、腾讯、长银58
今年秋招自己分别先后拿下:携程、长银58消费金融、美团的offer。同时也参加过百度、腾讯、好未来、拼多多、cvte的面试,在这里总结一下,希望对后来之人有帮助。如果你正准备秋招或者春招可以参考以下三点:坚持、基础、能吹的项目。美团一面:最好的单例模式线程同步实现方式,介绍synchronized与volatile的具体区别APP瘦身你从哪里方面考虑设计模式快速排序美团
2017-11-20 15:08:35 3901 1
原创 Atlas插件化
框架核心原理:框架主要包括4个层次,每个层次都为上一层提供服务,每个层次都有自己不同的核心作用。我们的runtime层呢主要是负责管理插件的生命周期,而插件的生命周期呢又由安装、启动、激活以及运行这几个状态来组成。 1、容器的接入: 1)引入插件及依赖仓库2)引入atlas类型的plugin3)最后添加它的api库4)配置atlas参数2、Bun
2017-11-14 20:11:38 483
原创 small插件
small插件化集成:步骤:1、在gradle中先配置一些参数。2、在宿主工程中初始化我们的small,在application中初始化。3、以指定的规范来插件插件化,遵守命名规范,模块名需要以app开头,包名中需要包含app。因为Small会根据包名对插件进行归类。4、编译创建好的插件,在命令行中输入gradlewbuildBundle命令,如果没有异常的话我们的插件和宿
2017-11-14 20:10:42 373
原创 插件化实现基础
自定义插件化: 插件化对Manifest处理主要核心是有两个工作:第一个工作是文件的合并,就是文件的io操作,将所有的清单文件合并到总的manifest里面去。第二个点就比较复杂了:需要修改整个构建流程,这样的话新的构建流程才能将所有的插件中清单文件合并到数组manifest文件中。插件化框架如果加载插件当中的类:我们每一个插件都是一个apk,既然是apk 那么它里面
2017-11-14 20:10:07 309
原创 tinker热修复
Tinker的集成总结:首先在我们的gradle文件中去配置一个注解库,一个核心的SDK库,有了这两个库,我们还需要定义一个Tinkmanager对tinker API层做一层封装。有了这个Tinkmanager以后,我们第三步定义了一个CustomTinkerLike,这个对象继承于ApplicationLinke,在这个类中完成tinker的初始化,而为什么需要这个ApplicationLik
2017-11-14 20:09:01 247
ZigBee CC2530视频教程
2018-01-07
计算机网络精讲视频教程
2018-01-07
ZigBee无线网络和收发器
2018-01-07
OkHttp源码详解
2017-11-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人