自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Horace

一个爱玩的程序员老司机,致力于通俗易懂的愉悦♂开发。!

  • 博客(93)
  • 收藏
  • 关注

原创 大厂前端面试都问些什么问题?入职爱奇艺年薪48万,面试经验总结

前言“金九银十“跳槽季,又到了面试求职的高峰期。好多小伙伴都会跳槽去找工作。如果你不跳槽,也建议把这篇文章看完,毕竟金九银十之后,就是金三银四了,总是逃不掉的你在面试的时候,是否遇到过以下问题:各大招聘网站海投简历,给回应的寥寥无几 永远想不明白到底该不该去外包公司 面试前不知道该做哪些准备,常被面试官问到发懵 不知道怎么谈薪资,可以让自己利益最大化如果你中了其中2条以上,那...

2019-11-11 17:41:47 1230

原创 如何启用React并发模式

前言Photo by Marc Schulte并发模式对用户体验和开发人员体验而言是一个巨大的改进。启用方法如下。React的新并发模式刚刚在 实验发行版中发布。这是多年研究的结果,并证明了这一点。如果您想了解更多有关为何如此酷的知识,请一定要观看 Dan Abramov在JSIceland的演讲。人们开始使用它,看到一些不错的性能优势。所有这些,请记住,这是实验性的。实验性发...

2019-11-11 17:29:18 1016

原创 开发一个高质量的前端组件,这些姿势一定要知道

前言2009 年 11 月 8 日,在欧洲 JSConf 大会上,Ryan Dahl 第一次正式向业界宣布了 Node.js 的面世,使 JS 语言书写后端应用程序成为了可能。在随后的几年里,Node.js 受到了 JavaScript 社区的狂热追捧,前端行业也因此进入了一个全新的工程化和全栈时代。回顾历史,总会让人心潮澎湃。在这股浪潮中,有无数的人和项目在这座丰碑中刻下了自己的名字:Re...

2019-11-10 17:24:36 797

原创 一线大厂前端怎么做?百度资深前端工程师,带你手写微前端框架

前言关注核心实现请直接跳至 第四小节:执行流程。本文中的命令仅适用于支持shell的系统,如Mac、乌班图及其他linux发行版。不适用于windows,如果想在windows下执行文章中的命令请使用git命令窗口(需安装git)或linux子系统(win10以下不支持)。一、初始化工程1、初始化工程目录cd ~ && mkdir my-single-sp...

2019-10-31 16:19:11 489

原创 前端工程师为什么会这么值钱?原来真相在这里

引言前端工程师的薪资之高是业界公认的事实,但是很多人会质疑前端工程师,认为他们并不能称为软件工程师,也“配不上”高昂的报酬。本文的作者分享了自己从一个前端菜鸟成长为一个10人前端团队主管的从业经历,并表示,前端人员的技术特性就是很值钱!今年5月份,甲骨文中国区裁员的消息登上了热搜。一时间“程序员失业”的话题成为了无良自媒体们的狂欢。可是他们却完...

2019-10-22 16:52:48 542

原创 同样做前端,为何差距越来越大?

本文转自公众号:阿里技术 作者:会影导读前端应用越来越复杂,技术框架不断变化,如何成为一位优秀的前端工程师,应对更大的挑战?今天,阿里前端技术专家会影结合实际工作经验,沉淀了五项重要方法,希望能对你的职业发展、团队协作有所启发。过去一年,阿里巴巴新零售事业群支撑的数据相关业务突飞猛进,其中两个核心平台级产品代码量急速增长,协同开发人员增加到数十人。由于历史原因,开发框架同时...

2019-10-22 16:06:20 314

原创 多端开发框架uni-app入坑指南,一套代码适用微信、支付宝、今日头条、百度等小程序

前言hello 小伙伴们,现在我已经正式入坑uni-app了。uni-app已经发布好几个月了,期间也是踩坑无数,但是官方秉承着不抛弃不放弃的精神,积极解决开发者的各种简单的、复杂的问题,在此表示感谢。我想还有小伙伴正在持观望状态,还没想好要不要使用uni-app,而且近些日子以来,许多跨端框架也纷纷出现在了大家的视线当中,让迷茫的我们更加不知道如何对比选择了。uni-app入坑...

2019-10-22 15:59:52 3346

原创 移动开发Weex原理之带你去蹲坑

前言 本篇将节操满满的安利Weex(˶‾᷄ ⁻̫ ‾᷅˵),不一样的角度推荐你入坑,官网有的我们不拖泥,这里将给你补充官方没有的,深入到蹲坑给你排忧解难,总会给你点惊喜,内容越后越干,请紧张的往下看。一、简介 有对比才有伤害,说到Weex,难免让人联系React Native。虽同为跨平台移动端解决方案,拥JavaScript妄一统天下,单两者的设计理念其实截然不同。 这里...

2019-01-16 18:01:17 10489

原创 大厂前端面试都问些什么问题?入职爱奇艺年薪48万,面试经验总结

前言“金九银十“跳槽季,又到了面试求职的高峰期。好多小伙伴都会跳槽去找工作。如果你不跳槽,也建议把这篇文章看完,毕竟金九银十之后,就是金三银四了,总是逃不掉的????你在面试的时候,是否遇到过以下问题: 各大招聘网站海投简历,给回应的寥寥无几 永远想不明白到底该不该去外包公司 面试前不知道该做哪些准备,常被面试官问到发懵 不知道怎么谈薪资,可以让自己利益最大化...

2019-10-29 10:55:56 1202

原创 Flutter完整开发实战详解(一、Dart语言和Flutter基础)

前言 在如今的 Fultter 大潮下,本系列是让你看完会安心的文章。本系列将完整讲述:如何快速从0开发一个完整的 Flutter APP。同时也会提供一些Flutter的开发细节技巧,并针对开发过程中可能遇到的问题进行填坑。 系列文章分为三篇,第一部分是基础篇(针对Dart语言和Flutter基础),第二部分是App快速开发实战篇,第三部分是细节填坑篇。 笔者相继开发过 Flutt...

2019-03-13 21:02:06 350

原创 从Android到React Native开发④【打包流程解析和发布为Maven库】续篇

引言本篇是对前三篇React Native文章的番外补充,主要实现把React Native项目,打包为完整aar库发布到maven,提供库支持的功能,算是小众化的需求吧,不过通过本篇你可以了解:React Native的资源的打包流程。 React Native原生依赖结构。 本地多aar文件的合并实现。 进一步的Gradle脚本理解。 如何发布一个React Native的M...

2019-01-27 22:01:47 316

原创 从Android到React Native开发③【自定义原生控件支持】

引言第三篇,也是react native原生相关的最后的一篇,是时候给收个尾了。这次就不废话了,直接上主题( ̄^ ̄)ゞ。react native的高效,在于其中大部分组件,都是基于原生封装的,js中对组件的配置与操作,最终都会转化为native控件行为。以上的这段废话,总结起来就是:react native通过统一的接口封装,把原生控件转为js组件使用。既然有官方封装,那肯...

2019-01-27 21:24:55 394

原创 从Android到React Native开发②【通信与模块实现】

前言大家吼,(◐‿◑),这次第二期,就让我们来怼React Native的通信,快速实现单独的React Native模块到APP里,愉悦吧骚年。至于为什么要有这期?当然是为了愉悦的飙车啦ε-(´∀`; )。(如果你还没看过第一集,可移步这里从Android到React Native开发①【入门】) 下方包含源码剧透,剧情略长,请紧张耐心的往下看。( ̄^ ̄)ゞ文中标注有“【数字】”...

2019-01-27 21:15:30 354

原创 从Android到React Native开发①【入门】

前言大家好┏ (ω)=,许久不见,今天讲讲React Native~(╯‵□′)╯︵┻━┻。关于React Native是什么,各位可谷歌之,这里主要给大家安利下React Native,总结下一些从Android到React Native相关的概念和基础。来吧,互相伤害啊(˶‾᷄ ⁻̫ ‾᷅˵)。本文并非讲解入门基础,更多是给Android原生开发学习和理解React Native...

2019-01-27 21:02:25 1481

原创 抛弃EventBus,用LiveDataBus代替—Android消息总线的演进之路

前言对于Android系统来说,消息传递是最基本的组件,每一个App内的不同页面,不同组件都在进行消息传递。消息传递既可以用于Android四大组件之间的通信,也可用于异步线程和主线程之间的通信。对于Android开发者来说,经常使用的消息传递方式有很多种,从最早使用的Handler、BroadcastReceiver、接口回调,到近几年流行的通信总线类框架EventBus、RxBus。An...

2019-01-25 19:25:38 1746

原创 Android 基于MediaCodec开发抖音短视频录制(贰)

前言上一篇文章中,我大概介绍了一下短视频的拍摄,主要就是音视频的加减速。这篇文章我将介绍下抖音视频特效的实现,废话不多说,进入正题。1.特效概览抖音上目前有这九种视频特效,本文将介绍前面六种的实现。有人可能会问了,为什么最后三种特效被忽略了。当然是因为我懒啦。2.『灵魂出窍』抖音的实现效果如下:我的实现效果如下:代码实现通过观察抖音的效果...

2019-01-23 16:43:28 1822 3

原创 Android 基于MediaCodec开发抖音短视频录制(壹)

前言当一个Android开发者玩抖音玩疯了之后,就会绞尽脑汁思考自己是否也能开发出一款相同的APP来呢?滴,滴滴!本篇文章将介绍自己总结的短视频录制的相关内容,主要分为三个部分:摄像头内容录制 音频录制 视频合成先上效果图 录制过程 录制结果1.摄像头内容录制录制流程大致如上图所示。渲染关键代码新建外部纹理 @Overr...

2019-01-23 14:55:18 1454

原创 Android OkHttp源码解析

引言从OkHttp问世以来,度娘,google上关于OkHttp的讲解说明数不胜数,各种解读思想不尽相同,一千个读者就有一千个哈默雷特。本篇文章从源码出发向你介绍Okhttp的基本使用以及底层实现原理,让你从会写转向会用,学习Android顶尖源码的设计理念和开源扩展性,如果解读有误,还望提出探讨纠正。工欲善其事,必先利其器Android API23(6.0)版本以后,Google...

2019-01-22 17:21:39 281

原创 Android App优化之提升你的App启动速度

前言在Android开发过程中APP启动速度一直是困扰着很多开发者的一个问题,今天就跟大家聊一天关于App启动速度如何优化的话题,本文主要分为:1.代码分析、2.Traceview上场、3.调整Application onCreate、4.PlaceHolder四个部分来跟大家一起探讨。 1, 代码分析以之前写的Github App为例.因为这个App集成了Bugly, P...

2019-01-21 18:02:46 295

原创 Tinker源码解析系列—补丁合成与加载

引言 上次我们分析了Tinker中关于Application的代理机制,这次我们来分析一下Tinker是如何进行补丁的合成与加载的。上一篇我们讲了 Tinker源码解析系列—Application代理机制阅读本文可能需要花费10分钟。以下所有对源码的分析均基于Tinker 1.7.7 版本,且由于源码过长,均只贴出关键部分Tinker中比较关键的几个类在开始分析补丁合成和加...

2019-01-21 17:27:56 493

原创 Tinker源码解析系列—Application代理机制

引言我们知道Tinker实现热修复的原理是将自己的全量patch包插入到dexElements数组的前段,从而达到热修复的目的。以下所有对源码的分析均基于Tinker 1.7.7 版本Application代理机制通常我们都是在Application中进行一些初始化的工作,包括tinker的初始化,那么application中所涉及到的类,在tinker初始化完成前就已经被类加...

2019-01-21 16:57:26 592

原创 Android 热修复 - Tinker 实现及踩过的坑

前言在 Android 热修复 - 各框架原理学习及对比 一文中,介绍了Nuwa、Robust、Andfix 和 Tinker 的实现原理,以及优缺点对比等。下面我们就让 Tinker-Demo跑起来,看看实际效果以及解决集成过程中遇到的问题。Tinker-Demo 效果下载 Github 上的开源代码,然后仅需导入 tinker-sample-android 工程即可。添加依...

2019-01-18 19:56:11 552

原创 Android 热修复 框架原理学习及对比

前言从15年开始各技术大佬们开始研究热修复技术,并陆续开源了许多的热修复框架。如 Jasonross 的 Nuwa,美团的 Robust,阿里的 Andfix,腾讯的 Tinker 等等...均是Android 前辈们夜以继日的成果。而现在热修复被广泛地应用于Android 应用和游戏,运用并理解热修复框架在面试中也是加分项。所以,赶紧学起来吧...本文以Tinker 作为学习对象,主...

2019-01-18 19:44:49 312

原创 Android双进程守护实现方式

引言在我们进行应用开发时,会遇到上级的各种需求,其中有一条 刚需:后台保活,更有甚者:我要我们的应用永远活在用户的手机后台不被杀死 —— 这都 TM 的扯淡除了系统级别的应用能持续运行,所有三方程序都有被杀死的那一天!当然QQ、微信、支付宝等会好一些这类系统厂商认可的软件被官方加入白名单可以避免被杀进程;我们能做的只是通过各种手段尽量让我们的程序在后台运行的时间长一些,或者在被干...

2019-01-17 22:13:29 935

原创 Android开发实现OpenCV人脸检测

前言这两天在踩OpenCV的坑,需求:在不安装OpenCV Manager apk的情况下跑通opencv下的人脸检测demo。写下此文记录下;注:本文采用opencv下的原始人脸检测的demo,所以里面的c代码都是原始包名的,如果你想修改包名则需要自己会jni的知识;后面我自己会修改包名重新生成新的so,如果这部分大家有问题的话,欢迎留言;一、OpenCV—SDK源码Open...

2019-01-17 16:14:41 424

原创 让Gradle放飞你的apk构建

引言 频繁的打包构建,时不时发布更新,是否总防不胜防的扰乱你的工作(tou lan)状态?(◐‿◑) 这是一篇简“短”解决方法,让Apk的构建参数完全由外界决定。通过外部配置版本信息、服务器地址、渠道、编译sdk版本等,直接构建apk,无需开发人员再次修改提交gradle等文件,解放你的双手吧。  以上场景,其实来源于最近的日常需求。因为项目的构建、测试、发布,都是在固定的...

2019-01-16 17:50:23 201

原创 Android全面插件化RePlugin流程与源码解析

引言RePlugin,360开源的全面插件化框架,按照官网说的,其目的是“尽可能多的让模块变成插件”,并在很稳定的前提下,尽可能像开发普通App那样灵活。那么下面就让我们一起深入♂了解它吧。 (ps :阅读本文请多参考源码图片 ( ̄^ ̄)ゞ )一、介绍RePlugin对比其他插件化,它的强大和特色,在于它只Hook住了ClassLoader。One Hook这个坚持,最大程度保证了稳定...

2019-01-15 20:52:20 381

转载 Android采用AES+RSA的加密机制对http请求进行加密

前言最近维护公司APP应用的登录模块,由于测试人员用Fiddler抓包工具抓取到了公司关于登录时候的明文登录信息。虽然使用的是HTTPS的方式进行http请求的,但还是被Fiddler抓到了明文内容。因此,需要对之前未加密的登录信息进行加密。在网上搜到一篇关于AES+RSA加密方案的文章,如下面链接所示,按照该方案成功解决了加密问题,在这里记录一下。开放接口的安全验证方案(AES+RSA)...

2019-01-15 17:49:09 459

原创 Retrofit源码解析

序言做Android开发的小伙伴都知道,现在最流行的网络框架就是RxJava+Retrofi+OkHttp。今天我们就一起来学习一下Retrofit内部如何实现。文章将会从下面几个点展开介绍:一、 如何使用Retrofit二、 Retrofit源码解析1. 构建Retrofit对象2. 创建Service实例3. 执行一次请求的具体流程三、总结如何使用Retro...

2019-01-15 16:59:24 227

原创 AndroidAPP数据采集SDK设计

背景介绍    随着流量红利逐渐消失,移动互联网时代正式进入了一个新的阶段,这个阶段要求我们对有限的流量进行精细化运营、深度挖掘加工,从而使流量进行有效转换和不断增长。    完备的前端监控系统是精细化运营的主要手段、它通过大数据来指导我们的运营策略、改善用户体验,同时也通过对数据半自动或者自动分析,来快速定位被监控系统的问题。    前端监控的第一个环节就是数据采集,其中移动APP的数据...

2019-01-15 16:49:35 2719

原创 微信开发基础①搭建开发环境

欢迎加入Android开发技术交流QQ群:150923287,本群可免费获取Flutter、Gradle、RxJava、小程序、Hybrid、移动架构、NDK、React Native、性能优化等技术教程!

2019-01-07 15:25:38 328

原创 NDK开发基础④增量更新之客户端合并差分包

接续上篇NDK开发基础③增量更新之服务器端生成差分包前情提要增量更新原理就是在服务器端使用bsdiff进行文件内容比较,再使用了bzip2进行文件压缩 , 在下载APP时可以减少用户流量 。在客户端 , 则是将下载好的拆分包与现有的APK进行文件合并 , 得出新的APK, 再进行安装 。生产资源及工具bsdiff --- bsdiff 生成差分包及合并差分包库 , 使用bspat...

2019-01-07 15:15:47 268

原创 NDK开发基础③增量更新之服务器端生成差分包

接续上篇NDK开发基础②文件加密解密与分割合并前情提要IO操作 , 一直在开发中占据很大比重 , 在Java中不管是网络操作还是文件操作 , 都作为IO流来处理 , 都依靠InputStream和OutputStream这两个输入输出流 。在上篇中 , 使用了C语言的IO流 , 进行了文件的加密与解密,分割与合并 。其要点是,加密解密使用了^运算 ,分割文件则使用了,文件大小与文件个数的%...

2019-01-07 15:12:12 230

原创 NDK开发基础②文件加密解密与分割合并

接续上篇NDK开发基础①使用Android Studio编写NDK前情提要随着Android Studio的越来越完善 , 我们编写NDK就会越来越方便,使用Android Studio 2.2 RC2 , 编写NDK的时候 , 不需要使用javah命令来生成头文件 , 创建一个native方法 , 使用alt + enter会提示要你创建一个JNI函数 , C/C++语法提示也相对比较完...

2019-01-07 15:07:13 236

原创 Android NDK开发基础①使用Android Studio编写NDK

接续上个系列之 [ JNI开发系列 ]:JNI开发系列①JNI概念及开发流程JNI开发系列②.h头文件分析JNI开发系列③C语言调用Java字段与方法JNI开发系列④C语言调用构造方法JNI开发系列⑤对象引用的处理前情提要上个系列,我们学习了Java与C/C++的交互 , 使用Java调用C/C++函数,使用C/C++调Java的方法和创建Java对象等等 。在上个系列中 , 我们使用...

2019-01-07 15:00:52 272

原创 JNI开发系列⑤对象引用的处理

接续上篇JNI开发系列④C语言调用构造方法前情提要在上一篇中 , 我们了解到了 , 创建一个Java对象的几个步骤:第一,findClass找到需要创建对象的类(全类名)第二,得到构造方法的ID,构造方法名称,统一使用<init>第三,使用NewObject创建Java对象当创建了这个类的对象之后 , 我们就可以使用这个类里面所提供的方法了 , 那么我们就可以在...

2019-01-07 14:56:05 225

原创 JNI开发系列④C语言调用构造方法

接续上篇JNI开发系列③C语言调用Java字段与方法前情提要Java调用C方法很简单 , 只需要编写native方法即可 , 通过C去调用Java的字段与方法 , 则需要比较复杂的操作 , 上篇中介绍了 , C调用的Java字段与方法的几个套路:步骤一 、 得到jclass, 字节码对象 , 如果是static native修饰 , 则函数会以jclass类型传入 , 非静态则需要得...

2019-01-07 14:51:52 308 1

原创 JNI开发系列③C语言调用Java字段与方法

接续上篇JNI开发系列②.h头文件分析前情提要在前面 , 我们已经熟悉了JNI的开发流程 , .h头文件的分析 , 生成头文件javah命令 , 以及java类型在C语言中的表现形式 , 值得注意的是 , java中的所有引用类型都是jobject类型 , native生成的函数 , 以Java_全类名_方法名表示,包名的.以_表示 。概述在开篇的时候 ,我们就使用java的nat...

2019-01-04 22:15:10 232

原创 JNI开发系列②.h头文件分析

接续上篇JNI开发系列①JNI概念及开发流程前情提要JNI技术 , 是java世界与C/C++世界的通信基础 , java语言可以通过native方法去调用C/C++的函数 , 也可以通过C/C++来调用java的字段与方法 。 在上篇中 , 我们了解了JNI开发的基本流程 , 接下来我们来分析分析C语言代码以及头文件 。.h头文件分析头文件生成命令 : javah com.ze...

2019-01-04 14:36:26 259

原创 JNI开发系列①JNI概念及开发流程

接续上个系列C语言基础及指针引言在学习了C语言基础之后 ,我们简单的了解了C语言编程的一些范式 , 了解了指针 , 结构体 , 联合体 , 函数 , 文件IO等等 。我们最终的目的是要学会NDK开发 , 而NDK开发就离不开我们的JNI技术 。下面 , 就来开始我们的JNI之旅吧 。JNI的概念JNI全称 Java Native Interface , java本地化接口 , 可以...

2019-01-04 14:33:11 464

空空如也

空空如也

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

TA关注的人

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