- 博客(2043)
- 资源 (156)
- 收藏
- 关注

原创 Vite开发快速入门
一、Vite简介Vite (法语意为 “快速的”,发音 /vit/) 是一种面向现代浏览器的一个更轻、更快的前端构建工具,能够显著提升前端的开发体验。除了Vite外,前端著名的构建工具还有Webpack和Gulp。目前,Vite已经发布了Vite2,Vite全新的插件架构、丝滑的开发体验,可以和Vue3的完美结合。1.1 Vite组成Vite构建工具由两部分组成:一个开发服务器,它基于原生 ES 模块提供了丰富的内建功能,如模块热更新(HMR)。一套构建指令,它使用 Rollup 打包你的代码,
2021-07-21 19:28:19
2864
3

原创 如何让前端工程师拥有永不过时的技能
常常听人吐槽说,前端技术更新太快、前端的细分太多,程序员太苦、很多东西学不过来。作为一名工作了9年的资深前端⼯程师,我也是深有感触。有时候,面对这种吐槽,我也是一笑而过。不过,面对这些吐槽,我看到的却是前端开发者内心的焦虑。面对越来越卷的行业现状,大多数的开发者都有一股想突破⾃我的想法,不然的话,那和咸⻥有什么区别。首先,对于前端同学不断学习的态度我是很赞赏的,作为一名开发者,不停的学习新技术是每个开发者需要掌握的必备技能。但如果我们从另外⼀个⻆度来看,⼀个⾏业的新东⻄层出不穷,正说明这个⾏业⼀直在⾼速发
2020-12-07 10:48:42
20380
17

原创 初识动态规划算法
前面,我们对动态规划算法做了一个简单的介绍:算法之动态规划算法简介。下面,我们就动态规划算法做一下具体的介绍。硬币找零问题虽然说硬币找零在现实生活中越来越少,但它仍然活跃在编程领域和面试问题当中,主要还是因为它极具代表性,也能多方面考察一个开发人员或面试者解决问题的能力。首先,我们来看看这个算法问题的具体描述: 给定 n 种不同面值的硬币,分别记为 c[0], c[1], c[2], … c[n],同时还有一个总金额 k,编写一个函数计算出最少需要几枚硬币凑出这个金额 k?同时,每种硬币的个数不限,如
2020-10-16 16:48:34
1554

原创 HarmonyOS简介
前两天,华为发布了HarmonyOS 2.0,俺也赶个时髦,给大家简单介绍下HarmonyOS。定义首先,我们来看一下官方对HarmonyOS的定义。根据官方的定义,HarmonyOS是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备的能力。对消费者而言,HarmonyOS能够将生活场景中的各类终端进行能力整合,形成一个“超级虚拟终端
2020-09-13 21:44:05
11227
3

原创 Android 11 正式版发布
昨天,谷歌宣布推出Android 11正式版,主要加强了聊天气泡、安全隐私、电源菜单,以及对瀑布屏、折叠屏、双屏的支持。Pixel、一加、小米、OPPO、realme手机用户将在未来几天收到更新推送,其他手机用户将在未来几个月内收到更新推送。开发者可以通过Android 开源项目 (AOSP)来下载最新的源代码。对比最近两年发布的几个版本可以发现,安卓系统其实变化不是很大,底层改变也不是很多,更新的内容主要是围绕着消息、 隐私和如何更好地控制所有的智能设备来开发的。下面让我们来具体看一下Android 1
2020-09-10 19:48:54
2084

原创 React Native学习资源汇总
目前主流的移动跨平台技术方案大体可以分为三类,一类是使用原生内置浏览器加载HTML5的Hybrid技术方案,采用此种方案的主要有Cordova、Ionic和微信小程序;另一类是使用JavaScript语言进行开发,然后使用原生组件进行渲染,采用此方案的主要有React Native、Weex和快应用;最后一类是使用自带的渲染引擎和自带的原生组件来实现跨平台,采用此种方案的主要是Flutter。对于其他的浏览器方案,基本可以抛弃了,现在我们讨论移动跨平台开发主要说的是React Native和Flutter
2020-08-01 14:54:34
2505

原创 Flutter 应用开发之Bloc模式
基本概念响应式编程所谓响应式编程,指的是一种面向数据流和变化传播的编程范式。使用响应式编程范式,意味着可以在编程语言中更加方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。响应式编程最初的目的是为了简化交互式用户界面的创建和实时系统动画的绘制而提出来的一种方法,是为了简化MVC软件架构而设计的。在面向对象编程语言中,响应式编程通常以观察者模式的扩展呈现。还可以将响应式流模式和迭代器模式比较,一个主要的区别是,迭代器基于”拉“,而响应式流基于”推“。使用迭代器是一种命令
2020-07-05 14:12:51
1515

原创 一文了解Android游戏SDK开发
去年从平安离职之后,加入了B站,负责游戏SDK相关的业务开发和维护工作,经过半年来的摸索,对于游戏SDK的开发有了一定的理解,下面就对游戏SDK开发涉及到的知识点进行简单的梳理。SDKSDK(Software Development Kit)是软件开发工具包的缩写,一般来说,SDK是用于给开发人员提供进行应用程序开发的工具的,这样程序员就可以快速的开发出应用软件,省去了编写硬件代码和基础代码框架的过程,我们常见的Android SDK就属于这一类。除了这种比较大的SDK,我们平时开发的library也属
2020-07-01 23:44:35
3443
1

原创 2020年大前端发展趋势
迅速发展的前端开发,在每⼀年,都为开发者带来了新的关键词。2019 年已步⼊尾声,2020 年前端发展的关键词⼜将有哪些呢?发展的方向又会是什么呢?参考2019年大前端的发展,不出意外,前端依旧会围绕⼩程序、超级APP、跨端开发、前端⼯程化以及新技术运用等几个方面进行展开(可以参考2019年大前端技术趋势深度解读)。小程序在⼩程序⽅⾯,今年仍然是⼩程序突⻜猛进的⼀年,各⼤主流的 App 都上线...
2019-11-25 11:14:03
78582
66

原创 史上最全的Android面试题集锦
Android基本知识点1、常规知识点1、 Android类加载器在Android开发中,不管是插件化还是组件化,都是基于Android系统的类加载器ClassLoader来设计的。只不过Android平台上虚拟机运行的是Dex字节码,一种对class文件优化的产物,传统Class文件是一个Java源码文件会生成一个.class文件,而Android是把所有Class文件进行合并、优化,然后...
2019-07-17 11:58:06
115077
39

原创 Android性能优化总结
安卓开发大军浩浩荡荡,经过近十年的发展,Android技术优化日异月新,如今Android 9.0 已经发布,Android系统性能也已经非常流畅,可以在体验上完全媲美iOS。但是,到了各大厂商手里,改源码、自定义系统,使得Android原生系统变得鱼龙混杂,然后到了不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。另外,随着产品内容迭...
2019-06-18 21:45:50
41461
5

原创 Android刘海屏、水滴屏全面屏适配
现在,市面上的屏幕尺寸和全面屏方案五花八门。这里我使用了小米的图来说明:上述两种屏幕都可以统称为刘海屏,不过对于右侧较小的刘海,业界一般称为水滴屏或美人尖。为便于说明,后文提到的「刘海屏」「刘海区」都同时指代上图两种屏幕。刘海屏、水滴屏全面屏适配细节当我们在谈屏幕适配时,我们具体谈什么呢?适应更长的屏幕防止内容被刘海遮挡其中第一点是所有应用都需要适配的,对应下文的声明最大长宽比,...
2019-06-09 13:40:57
15963
4

原创 React Native开发之react-navigation库详解
众所周知,在多页面应用程序中,页面的跳转是通过路由或导航器来实现的。在0.44版本之前,开发者可以直接使用官方提供的Navigator组件来实现页面的跳转,不过从0.44版本开始,Navigator被官方从react native的核心组件库中剥离出来,放到react-native-deprecated-custom-components的模块中。如果开发者需要继续使用Navigator,则需要...
2019-06-04 07:55:52
4347
3

原创 Vue经典开源项目汇总
Vue.js(读音 /vjuː/, 类似于 view)是一套用于构建用户界面的渐进式框架,主要用于快速的构建前端界面,与其它大型的前端框架不同,Vue被设计为可以自底向上逐层应用。相比Angular.js来说,Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合,是初创项目的前端首选框架。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue也完全能够为复杂的单页应用...
2019-01-31 15:30:57
15125
2

原创 移动跨平台技术方案总结
“得移动端者得天下”,移动端取代PC端,成为了互联网行业最大的流量分发入口,因此不少公司制定了“移动优先”的发展策略。为了帮助读者更好地学习WEEX,本节将对React Native、Weex和Flutter等主流的跨平台方案进行简单的介绍和对比。React NativeReact Native (简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早...
2019-01-22 12:39:54
5560
1

原创 客户端骨架屏详解
一直以来,无论是Web还是iOS、Android的应用中,为了提升应用的加载等待这段时间的用户感知体验,各种技术层出不穷。其中,尤以菊花图以及由它衍生各种加载动画最为突出。对于菊花图我们自不必多说,现在对于加载的设计体验有了比菊花加载体验更棒的方法,即大家常看到的Skeleton Screen Loading,中文叫做骨架屏。所谓Skeleton Screen Loading,即表示在页面完全...
2019-01-04 15:53:38
7200

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

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

原创 ios逆向工具MonkeyDev简介
MonkeyDev简介虽然是米国的苹果开发的的的我操作系统系统,但是要论越狱iPhone和逆向分析来说,那国内远胜于米国了,可能是国内很多相关的灰色产业链吧。在之前,我们想动态调试一个没有源码的应用程序,通常是要借助于THEOS,自己操作LLVM来动态连接到应用程序,然后再使用LLVM的调试命令,整个的过程是非常耗时和繁琐的。不过在17年的时候,iOS逆向后起之秀AloneMonkey对这...
2018-03-19 10:31:27
12824
2

原创 Android Studio最全插件整理
在Android开发中,合理的使用Android Studio插件不但可以提高开发效率,还能从整体上提高代码的质量。下面就Android开发中常见的一些插件做一个整理。1,GsonFormatGsonFormat是一个可以快速将json字符串转换成一个Java Bean,免去我们根据json字符串手写对应Java Bean的过程。 使用方法:快捷键Alt+S也可以使用Alt+In...
2018-03-15 11:35:17
5093
2

原创 在Mac上搭建React Native开发环境
概述前面我们介绍过在window环境下开发React Native项目,今天说说怎么在mac上搭建一个RN的开发环境。配置mac开发环境基本环境安装1.先安装Homebrew:用于安装NodeJS和其他工具。 注:Homebrew详解,对这个比较了解的略过,我也是用mac没多久,这里给小白普及下。 Homebrew全称Homebrew is the easiest and most flex
2016-12-28 21:45:26
20566

原创 前端开发的工具化与工程化
概述近年来,随着浏览器性能的提升与移动互联网浪潮的汹涌而来,Web前端开发进入了高歌猛进,日新月异的时代。这是最好的时代,我们永远在前行,这也是最坏的时代,无数的前端开发框架、技术体系争妍斗艳,让开发者们陷入困惑,乃至于无所适从。Web前端开发可以追溯于1991年蒂姆·伯纳斯-李公开提及HTML描述,而后1999年W3C发布HTML4标准,这个阶段主要是BS架构,没有所谓的前端开发概念,网页只不过是
2016-12-28 10:01:57
7972

原创 iOS 滚动视图的复用问题解决方案
LazyScroll是什么LazyScrollView 继承自ScrollView,目标是解决异构(与TableView的同构对比)滚动视图的复用回收问题。它可以支持跨View层的复用,用易用方式来生成一个高性能的滚动视图。为什么要用LazyScrollView我们在做首页的时候,往往展示的东西会很多,随着View数量逐渐膨胀,没有一套复用回收机制的ScrollView已经影响到性能了,迫切需要处理
2016-12-27 20:28:36
11872

原创 Docker与容器
Docker介绍 1. Docker 主要解决什么问题 Docker 对外宣称的是Build、Ship 和Run,Docker 要解决的核心问题就是快速地干这三件事情。它通过将运行环境和应用程序打包到一起,来解决部署的环境依赖问题,真正做到跨平台的分发和使用。而这一点和DevOps不谋而合,通过Docker可以大大提升开发、测试和运维的效率。在这个移动互联网的时代,如果一个工具能够节省人力,
2016-12-26 23:01:30
8964

原创 微信小程序实例-摇一摇抽奖
概述前面我们讲了如何开始微信小程序搭建和一些组件的介绍。微信小组件和微信小程序入门微信小程序目录为了更好的理解小程序和小程序开发,我们首先来看一下项目的目录。 首先看下根目录下的app.json的文件,可以看到在”pages”的数组里,里面配置了每个界面,且包含了每个界面文件的目录 我们接下来看一下page文件夹,可以看到每个页面需要包含两个文件,一个是js文件,是每个界面的入口,wxml的
2016-12-26 17:53:48
26180
1

原创 微信小程序基本组件概述
为了更好的理解微信小程序,本文90%文字描述来源于官网的介绍。官网原链接https://mp.weixin.qq.com/debug/wxadoc/dev/component/?t=20161222 本文是基本组件介绍的第一篇,主要介绍微信小程序给我们提供的小组件有哪些,并举一个简单的例子,第二篇将详细介绍各小组件的使用。基础组件框架为开发者提供了一系列基础组件,开发者可以通过组合这些基础组件进行
2016-12-24 20:37:22
18717
1

原创 iOS使用自签名证书实现HTTPS请求
概述在16年的WWDC中,Apple已表示将从2017年1月1日起,所有新提交的App必须强制性应用HTTPS协议来进行网络请求。 默认情况下非HTTPS的网络访问是禁止的并且不能再通过简单粗暴的向Info.plist中添加NSAllowsArbitraryLoads设置绕过ATS(App Transport Security)的限制(否则须在应用审核时进行说明并很可能会被拒)。所以还未进行相应配
2016-12-23 17:50:14
8317

原创 一起聊聊什么是P问题、NP问题、NPC问题
概念P问题:如果一个问题可以找到一个能在多项式的时间里解决它的算法,那么这个问题就属于P问题。通常NOI和NOIP不属于P类问题,我们常见到的一些信息奥赛的题目都是P问题。 NP问题:可以在多项式的时间里猜出一个解的问题。NP问题不是非P类问题。NP问题是指可以在多项式的时间里验证一个解的问题。之所以要定义NP问题,是因为通常只有NP问题才可能找到多项式的算法。 所有的P类问题都是NP问题。也就
2016-12-22 18:13:39
11758
1

原创 微信小程序开发入门篇
本文档将带你一步步创建完成一个微信小程序,并可以在手机上体验该小程序的实际效果。开发准备工作获取微信小程序的 AppID登录 https://mp.weixin.qq.com ,就可以在网站的“设置”-“开发者设置”中,查看到微信小程序的 AppID 了,注意不可直接使用服务号或订阅号的 AppID 。 下载开发工具下载地址:https://mp.weixin.qq.com/debug/wxado
2016-12-19 13:31:33
49624
3

原创 Support Annotation Library使用详解
概述Support Annotation Library是在Android Support Library19.1版本开始引入的一个全新的函数包,它包含了诸多有用的元注解。用来帮助开发者在编译期间发现可能存在的bug。Support Library本身也使用Annotations Library提供的注解来完善Library的代码质量。 Android的每一个版本都在不断的完善Annotation
2016-12-18 22:20:17
6660

原创 github pages + Hexo + 域名绑定搭建个人博客增强版
概述前面我们用github pages + Hexo 搭建了一个简单版的个人博客系统,但是里面的内容单调,很多功能不够完善,所以我们需要对yelle 的主题进行优化和完善。基本搭建请访问:http://blog.youkuaiyun.com/xiangzhihong8/article/details/53355036主题配置介绍从中我们也可以看出,对于主题来讲,大部分可以配置的地方其实都是在这里的。所以我们需要
2016-12-18 14:21:01
10968
1

原创 不可错过的Node.js框架
前言Node.js是由Ryan Dahl于2009年创建的。它是一个开源的跨平台运行时环境,用于开发服务器端和网络应用程序,它是基于Google Chrome V8 JavaScript引擎构建的。Node.js使用事件驱动,非阻塞I/O模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。你可以通过在Node.js中运行JavaScript,使用Ruby或者PHP语言做想做的任何事
2016-12-17 20:35:28
5916

原创 如何编写入门级redis客户端
概述Redis是开源的、基于内存的数据结构存储系统,可用作数据库、缓存以及消息代理方面。Redis支持许多种数据结构,并内置了丰富的诸如冗余、脚本、事务、持久化等功能,深受业界喜爱,被各种业务系统广泛使用。为了方便使用,Redis官网推荐了针对各种编程语言的多种客户端,支持java、c#、python、c++等主流编程语言。那么大家会问,既然Redis客户端已经这么丰富了,为什么还要尝试自己编写客户
2016-12-16 21:31:14
4395

原创 机器学习简介及常用算法
概念什么是机器学习? 机器学习是英文名称Machine Learning(简称ML)的直译。机器学习涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。 相对于传统
2016-12-15 10:02:09
21822
1

原创 Android自动打包工具aapt详解
概念在Android.mk中有LOCAL_AAPT_FLAGS配置项,在gradle中也有aaptOptions,那么aapt到底是干什么的呢? aapt即Android Asset Packaging Tool(Android 打包工具),在SDK的build-tools目录下。我们可以查 看,创建, 更新ZIP格式的文档附件(zip, jar, apk)。也可将资源文件编译成二进制文件,尽
2016-12-13 11:13:55
13303

原创 区块链的现状与未来
在上一篇文章中我们聊到了区块链技术的一些基本概念以及运行的原理性的东西,以及在金融行业的应用,那我们接下来要分析下区块链除了在互联网、金融领域之外,还有没有其他的用途。区块链与法律这个标题貌似有点大,那我说一个例子:从世界最大众筹项目DAO的技术漏洞引起的以太币被盗风险说起,谈到作为面向未来的法律人应该如何参与到区块链这场世纪浪潮中。未来的区块链的发展影响到的不只是互联网和金融,还有法律甚至很多行
2016-12-10 23:38:29
12302

原创 React Native实现一个自定义模块
概述在 前期介绍React Native 项目结构的时候,我们讲解过React的项目组成,其中说过 node_modules 文件夹,这是一个存放 node 模块的地方。我们知道React是用npm来管理项目的。提到npm,一般指两层含义:一是 Node.js 开放式模块登记和管理系统,另一种是 Node.js 默认的模块管理器,是一个命令行软件,用来安装和管理 node 模块。npm 使用介绍n
2016-12-10 22:08:07
6576

原创 Android逆向工程
在Root前提下,我们可以使用Hooker方式绑定so库,通过逆向方式篡改数值,从而达到所谓破解目的。然而,目前无论是软件加固方式,或是数据处理能力后台化,还是客户端数据真实性验证,都有了一定积累和发展,让此“懒技术”不再是破解修改的万金油。再者,阅读汇编指令,函数指针替换,压栈出栈等技术需要一定技术沉淀,不利于开发同学上手。两年前,也是因为懒,很懒,非常懒,堆积了足够的动力,写了一个基于人工模拟
2016-12-05 23:39:19
6133

原创 Intellij IDEA 插件开发之自建插件仓库
Intellij IDEA 有一个自己的官方的插件仓库,但是当我们的开发的 Intellij IDEA 的插件不能够对外公开时,我们就需要搭建自己的 Intellij IDEA 的插件仓库。前不久我们也尝试着使用Intellij IDEA自己开发一个插件点击打开链接。搭建 Intellij IDEA 插件仓库Intellij IDEA 的官方文档里面有提到怎么去新建一个插件仓库,但是,这部分的文档
2016-11-27 11:07:03
17064
6

原创 “区块链”究竟是什么鬼
最近区块链比较火,区块链是什么鬼,怎么以前没听过,不过说个东西你一定听过-比特币,以前区块链用在比特币上,一直到最近半年,区块链已经渐渐开始有了一些其他应用,特别是在金融领域。那么什么是区块链呢?他和比特币有什么联系呢?我今天整理了之前各家所言,大体上也就明白区块链是什么玩意了。区块链在比特币的应用比特币点对点网络将所有的交易历史都储存在“区块链”(blockchain)中。区块链在持续延长,而且
2016-11-26 02:03:33
26425
5
Android离线包前端代码
2022-06-03
ModalViewDemo.zip
2020-11-30
ArouterDemo.zip
2019-07-05
Android仿微信图片选择
2019-03-12
iOS骨架屏源码
2019-01-04
Javassist代码注入
2018-10-15
仿喜马拉雅FM
2018-09-26
Android原生集成RN
2018-06-06
Flutter跨平台
2018-06-01
阿里的Atlas组件化框架
2018-05-10
Android模块化
2018-04-23
hexo博客打赏源码
2018-03-27
阿里云精选API
2017-12-27
美团RN项目
2017-07-31
安卓聊天页面
2017-06-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人