自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 OkHttp基础概念解释

最近在整理Android常用第三方框架相关的东西,说道Android的框架,无外乎就是Android开发中常见的网络、图片缓存、数据交互、优化、页面等框架,其中网络作为一个基础部分,我相信大家更多的是使用OkHttp,而在长连接中有Socket和webSocket等,今天给大家总结下OkHttp相关的内容,部分参考网络资源。OkHttp简介OkHttp作为时下Android最火的Http第...

2018-05-26 13:13:40 2190 5

原创 记一次ijkplayer的编译过程

从视频直播到播放器,现在很多的产品都集成了视频播放的功能,而目前市面上有比较主流的有第三方框架有:Vitamio ( 体积比较大,有商业化风险 github:https://github.com/yixia/VitamioBundle/)ijkplayer(B站下开源的框架 体积大 配置环境比较麻烦 github:https://github.com/Bilibili/ijkplaye...

2018-05-02 17:45:24 1009

转载 Redux 快速上手指南

Redux简介如果要用一句话来概括Redux,那么可以使用官网的这句话:Redux是针对JavaScript应用的可预测状态容器。此句话虽然简单,但包含了以下几个含义:可预测性(predictable): 因为Redux用了reducer与纯函数(pure function)的概念,每个新的state都会由旧的state建来一个全新的state。因而所有的状态修改都是”可预测的”。状态...

2018-05-31 08:37:10 16045 2

原创 Java基础之HashTable与ConcurrentHashMap解析

HashTable和HashMap的区别在面试的过程中,经常会被问到HashTable和HashMap的区别,下面就这些区别做一个简单的总结。1、继承的父类不同Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类,但二者都实现了Map接口。2、线程安全性不同Hashtable 中的方法是Synchronize的,而HashMap...

2018-05-30 14:49:30 570

转载 Java并发基础你需要知道的基础知识

多线程和并发编程是Java里面的核心内容,通常有以下一些概念需要重点掌握。线程;锁;同步器;并发容器和框架;Java并发工具类;原子操作类;Executor框架(执行机制);并发基础概念可见性和原子性可见性:一个线程修改了共享变量的值,另一个线程可以读到这个修改的值。 原子性:不可被中断的一个或一系列操作。保证线程的原子性主要有两种方式:使用总线锁保证原子...

2018-05-28 14:54:05 522

原创 React Native悬浮效果组件

由于其他的原因,对于React Native相关的内容最近没有投入太多的关注,从去年年底出版了《React Native移动开发实战》后,对于React Native的关注就比较少了。最近由于公司之前的项目需要,所以React Native又重新回到我的世界,并且,最近出去面试深深的感觉到原生开发的饱和,不管是Android还是iOS,移动市场基本已经饱和,而更多的公司和开发者开始转向了前端,这对...

2018-05-27 21:47:44 6626 2

原创 Java并发编程之CountDownLatch

CountDownLatch(闭锁)是一个很有用的工具类,利用它我们可以拦截一个或多个线程使其在某个条件成熟后再执行。说到这,给大家举一个最典型的例子:假设一条流水线上有三个工作者:worker0,worker1,worker2。有一个任务的完成需要他们三者协作完成,worker2可以开始这个任务的前提是worker0和worker1完成了他们的工作,而worker0和worker1是可以并行...

2018-05-24 22:26:57 156

原创 SQLite读写同步之WAL机制

WAL简介在数据库读写操作中,经常会有人问到数据库读写同步的问题,即在数据库操作中,数据正处于写状态,此时要读取的数据为空状态,问怎么操作。其实,说到这就不得不提到数据库的一个重要的机制WAL,不管是后端的PostSql还是前端的SqlLite,都会涉及到WAL机制。WAL的全称是Write Ahead Logging,它是很多数据库中用于实现原子事务的一种机制,SQLite在3.7.0版...

2018-05-24 18:06:32 2273

原创 Webpack简介与基本概念

Webpack简介Webpack 是一个前端资源加载和打包工具。所谓的模块就是在平时的前端开发中,用到一些静态资源,如JavaScript、CSS、图片等文件,webpack就将这些静态资源文件称之为模块。 webpack支持AMD和CommonJS,以及其他的一些模块系统,并且兼容多种JS书写规范,可以处理模块间的依赖关系,所以具有更强大的JS模块化的功能,它能对静态资源进行统一的管理以及打...

2018-05-23 22:11:02 2099

原创 JVM 运行机制及其原理

最近出去面试,总被问到Java JVM相关的东西,什么JVM的内存模型、JVM的内存分配、内存回收、内存回收算法…搞得我一头雾水,早些年还看过一些,蹭着有时间给大家也给自己总结下JVM相关的知识。JVMJVM是Java Virtual Machine(Java虚拟机)的缩写,是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机主要由字节码指令集、...

2018-05-22 22:15:09 17799 2

原创 前端转换神器react-to-vue

近年来,前端技术不断火热,尤其以React和Vue技术最为火爆,这两个前端框架也是目前国内使用得最多的两个框架。虽然,在使用的广度上React虐胜一筹,但Vue框架的发展趋势也不容小觑,特别是去年React的MIT风波,越来越大的企业开始将目光转向了Vue。那么有没有一款软件或者工具可以实现两个框架之间组件的可复用呢?答案是有的,react-to-vue就是这么一款不错的工具软件。简介...

2018-05-21 22:23:17 4191

转载 Android新架构组件WorkManager

注:原文地址 5月8号, I/O大会上又推出了两个新的Architeture Component库: Navigation与 WorkManager. 这里就先介绍一下 WorkManager。WorkManager简介其实就是”管理一些要在后台工作的任务, – 即使你的应用没启动也能保证任务能被执行”。1. 为何不用JobScheduler, AlarmManger来做?其实这...

2018-05-21 11:15:23 3183 1

原创 Vue 入门之项目目录结构介绍

Vue 是一套用于构建用户界面的渐进式框架,与其它大型的页面框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。关于Vue环境搭建的内容,本文不再介绍,不清楚的同学可以访问Vue环境搭建或者查看官网相关内容的介绍: h...

2018-05-20 18:10:23 4862 1

原创 移动跨平台Weex入门

Weex 是一个动态化的高扩展跨平台解决方案,也就是说开发人员只需要写一份代码就可以同时在移动端(Android端、iOS端)、Web端运行,这有别于React Native,从技术实现上也略有区别。下面是一张Weex的整体架构图。 从这张图我们可以发现,Weex 表面上是一个客户端技术,但实际上它串联起了从本地开发环境到云端部署和分发的整个链路。具体来说,开发者首先可以在本地像撰写...

2018-05-18 18:23:19 357

原创 React Native之组件Component与PureComponent

众所周知,React Native的页面元素是由一个一个的组件所构成的,这些组件包括系统已经提供的组件,如View、TextInput等,还有一些第三方库提供的组件,以及自定义的组件。通常在封装组件的时候都会继承Component,不过在React 15.3版本中系统提供了PureComponent,下面就来看一下这两个组件的区别。首先声明,PureComponent是Component的一个...

2018-05-18 13:32:47 2855

原创 Progressive Web Apps中文版

随着大前端的持续演进,客户端与web前端开发的区别越来越小,而如何让原生移动开发者转到前端开发获取跨平台开发,除了React Native框架,还有Weex框架之外,还有PWA技术,目前有关PWA技术的文章和书籍都比较少,下面是国外的一本书。目前,有人民邮电出版社翻译出版。 Progressive Web Apps (PWA) 中文版本书目录第1部分 | 定义 PWA第1章 | ...

2018-05-17 18:28:34 817

原创 Android动态化框架App Bundles

Android App Bundles在今年的Google I/O大会上,Google向 Android 引入了新 App 动态化框架(即Android App Bundle,缩写为AAB),与Instant App不同,AAB是借助Split Apk完成动态加载,使用AAB动态下发方式,可以大幅度减少应用体积。现在只须在 Android Studio 中构建一个应用束 (app bundle...

2018-05-16 22:42:16 6656 2

原创 webpack+vue开发环境搭建

工具安装首先安装一些必要的工具,由于npm的源都是在国外的地址,所以安装会比较慢,可以使用淘宝的国内镜像地址。 1,安装淘宝镜像的命令为:npm install -g cnpm --registry=https://registry.npm.taobao.org 2、然后安装全局vue-cli脚手架,用于帮助搭建所需的Vue的开发模板框架。命令如下:cnpm install -g...

2018-05-16 11:40:41 7566

原创 详解Android刘海屏适配

Apple一直在引领设计的潮流,自从 iPhone X 发布之后,”刘海屏” 就一直存在争议,本以为是一个美丽的错误(Bug),却早就了一时间“刘海屏”的模仿潮。目前,国内已经推出的刘海屏”手机有 OPPO R15 和 华为 P20,并且Google也在IO大会上提高了相应的适配方案。什么是刘海屏屏幕的正上方居中位置(下图黑色区域)会被挖掉一个孔,屏幕被挖掉的区域无法正常显示内容,这种...

2018-05-15 08:17:31 41841 19

原创 Android插件化常见冲突解决方案

在Android组件化和插件化的过程中,经常会遇到狠多的问题,如常见的包依赖冲突,资源文件依赖冲突等问题,当然,在资源文件上面,一些组件化框架已为我们提供了一些资源文件冲突的解决方案。下面做一个简单的总结,未完待续。1,资源冲突问题在组件化项目中,经常会遇到多个Module模块的资源冲突问题。例如,一个简单的app包含app模块、user模块、me模块,其中app模块依赖user模块和me...

2018-05-11 10:34:35 1558 1

原创 阿里的Atlas组件化框架

Atlas简介Atlas是一个Android客户端容器框架,主要提供了组件化、动态性、解耦化的支持,支持在编码期、Apk运行期以及后续运维修复期的各种问题。Atlas目前支持的主要功能有:在工程期,实现工程独立开发,调试功能,工程模块的独立;在运行期间,实现完整的组件生命周期映射,类隔离等机制;在运维期间,提供快速增量的更新修复功能,快速升级。Atlas是工程期和运行期共同起作...

2018-05-10 23:05:11 5974 1

转载 2018 Google I/O 开发者大会发布的那些新技术

本文为转载文章,原文地址: https://mp.weixin.qq.com/s?__biz=MzAwODY4OTk2Mg==&mid=2652046210&idx=1&sn=f5f17891c8fb45bb975c27072da5f35b&chksm=808ca3c7b7fb2ad1fd7360f71fe42a4737722ab1aed77994d3f9c676...

2018-05-09 08:13:52 1382

原创 今日头条面试

首先说一下,今日头条的面试主要分为三轮到四轮,如果是旺季面三轮,首先是基础面试,基本面试一般10个题左右,最近面试了一下今日头条的移动Android资深工程师,记录下。 第一面是北京的开发进行视频面试,有理论和编程题组成。用的是在线编程工具,如下图。 第一面 1,请编程实现单例模式,懒汉和饱汉写法。//饱汉写法public static Singleton getInstance(...

2018-05-08 22:29:27 10597 1

原创 是时候使用Kotlin编程了

从事Android开发的童鞋都知道,自从去年的Google I/O大会上Kotlin被定为Android开发的官方语言以来,关于Kotlin就成为每个开发人员学习的目标,的确,Kotlin以它独有的魅力正在吸引这传统的Java程序开发人员。或许很多的童鞋已经对Kotlin进行了深入的学习,甚至已经运用到了自己的项目当中,但是还有较多同学可能只是听过Kotlin或简单了解过,本文将从宏观的角度来介绍...

2018-05-07 13:46:45 794

原创 Angular 6正式版发布,都有哪些新功能

在Angular 5发布半年之后,Angular 6在昨天正式发布,那么在这个版本有哪些新功能呢?新版本重点关注工具链以及工具链在 Angular 中的运行速度问题。除此之外,这次更新还包括框架包(@angular/core、@angular/common、@angular/compiler 等)、Angular CLI、Angular Material + CDK等。ng updat...

2018-05-05 18:37:21 13297 3

原创 Android热修复Tinker接入实战

自2016年底Android Studio3.0版本退出以来,Android提出了InstantRun热修复方案,基于这种机制,各种热修复框架竞相涌现,国内的软件大厂纷纷开发了自己的热修复框架。对于热修复的更多介绍大家可以通过下面的文章来了解:全面了解Android热修复技术。 这些框架主要支持的功能如下: 这张图漏掉了阿里的Spofix,该框架可以及时更新,由于目前大多数的热修复框架...

2018-05-04 18:02:38 623

原创 Android D8,下一代 dex 编译器

Google 在刚刚发布的 Android Studio 3.1 新版本中,将 D8 作为新版本开发工具默认的 Dex 编译器。那么什么是 D8 呢,D8 与之前的 Dex 打包器有何区别呢?大家知道,安卓项目在打包生成 Apk 安装文件的过程中,最重要的一步便是将我们所写的 java 代码编译过成 .class 字节文件再打包转化成一个或多个 .dex 格式的代码压缩文件。这种 dex 文件...

2018-05-03 22:05:54 1959

原创 Android需要知道的TCP\IP和Http知识

相信大家在出去面试的时候,经常会被问到一些基础问题,这些问题,平时开发过程中我们并不会太注意,但是一些大公司在面试时会经常问,今天给大家总结下在Android/iOS开发中会被问到的关于TCP\IP和Http相关的知识。 左边是标准的OSI参考模型,共7层;右边是TCP/IP参考模型,分为4层。而TCP/IP作为实际的指导协议,在实际的开发中使用得最多。对于TCP/IP的4层模型可以简单地理...

2018-05-03 10:55:55 267

原创 Android性能分析工具简介

在Android项目开发工程中,功能开发只是其中的一部分,更多的时候是优化,优化除了个人的良好习惯,往往还需要借助第三方工具。本文罗列Android优化过程中的一些常用工具借助这些工具,可以很方便的帮助我们进行性能的分析,进而进行产品的优化。Android应用优化主要从页面优化,内存优化,电量优化,GPU优化和网络优化等方面着手,涉及的知识也比较广泛,下面是优化的一些常见工具。Andr...

2018-05-02 14:31:49 1264

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