- 博客(29)
- 资源 (156)
- 收藏
- 关注
原创 实时消息传输协议(RTMP)详解
概述概念:RTMP协议从属于应用层,被设计用来在适合的传输协议(如TCP)上复用和打包多媒体传输流(如音频、视频和互动内容)。RTMP提供了一套全双工的可靠的多路复用消息服务,类似于TCP协议[RFC0793],用来在一对结点之间并行传输带时间戳的音频流,视频流,数据流。通常情况下,不同类型的消息会被分配不同的优先级,当网络传输能力受限时,优先级用来控制消息在网络底层的排队顺序。RTMP块流实时消息
2017-03-30 22:31:34 6420
原创 移动端跨平台技术总结
概述曾经大家以为在手机上可以像桌面那样通过 Web 技术来实现跨平台开发,却因为性能或其他问题而放弃,不得不针对不同平台开发多个版本。这也违背了跨平台开发的初衷。而React Native让跨平台移动端开发在次回到人们的视野中,其成功的原因除了他“一次编写处处运行”,还因为它相比h5等前端技术,有了更接近原生的体验。 为了方便理解,笔者将跨平台技术分为4大流派:Web 流:也被称为 Hybrid
2017-03-29 17:41:11 7878 1
原创 JSBridge深度剖析
概述做过混合开发的人都知道Ionic和PhoneGap之类的框架,这些框架在web基础上包装一层Native,然后通过Bridge技术的js调用本地的库。在讲JSBridge技术之前,我们来看一下传统的实现方式。Android端Native调JSnative调用js比较简单,只要遵循:”javascript: 方法名(‘参数,需要转为字符串’)”的规则即可。在4.4之前,调用的方式:// mWebV
2017-03-27 13:16:03 19441 2
原创 小程序实现原理解析
概述作为一名前端开发,如果你还停留在应用开发层面,那你就OUT了,快来跟我一起探讨下小程序框架本身底层实现的一些技术细节吧,让我们从小程序的运行机制来深度了解小程序。 小程序是基于WEB规范,采用HTML,CSS和JS等搭建的一套框架,微信官方给它们取了一个很牛逼的名字:WXML,WXSS,但本质上还是在整个WEB体系之下构建的。 WXML,个人猜测在取这个名字的是微信的Xml,说到底就是xml
2017-03-26 22:04:43 77359 14
原创 React基础之JSX语法
概述JSX是React的核心组成部分,它使用XML标记的方式去直接声明界面,界面组件之间可以互相嵌套。可以理解为在JS中编写与XML类似的语言,一种定义带属性树结构(DOM结构)的语法,它的目的不是要在浏览器或者引擎中实现,它的目的是通过各种编译器将这些标记编译成标准的JS语言。使用JSX语法后,你必须要引入babel的JSX解析器,把JSX转化成JS语法,这个工作会由babel自动完成。同时引入b
2017-03-26 15:23:51 1574
原创 Android自定义日历源码收集
概述以前在一家OA公司的时候,做的第一个项目便是日程模块,当时由于对OA理解 的偏差,写了很多无用的代码和逻辑,也走了很多的弯路。几年过去了,现在回想起来还历历在目,今天给大家收集了一些关于日历、日程的源码。很普通的日历下载地址:http://www.dandroid.cn/?p=136支持收缩的日历源码地址:http://www.dandroid.cn/?p=461支持ListView 和 Cal
2017-03-25 22:36:13 7393 2
原创 深入理解Java之jvm启动流程
概述当我们写一个Java类,并重写Main方法,程序就能运行起来。main方法的背后,程序为什么能运行,jvm究竟做了什么处理?要理解这些,就需要了解jvm的设计原理以及启动的流程。虚拟机的启动入口位于share/tools/launcher/java.c的main方法,整个流程分为如下几个步骤: 1、配置JVM装载环境 2、解析虚拟机参数 3、设置线程栈大小 4、执行Java main方法
2017-03-24 21:46:25 13353 6
原创 传遍朋友圈的Workflow,到底是什么鬼
概述Workflow(工作流):指“业务过程的部分或整体在计算机应用环境下的自动化”。是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。工作流主要解决的主要问题是:为了实现某个业务目标,利用计算机在多个参与者之间按某种预定规则自动传递文档、信息或者任务。但是我们今天要谈的Workflow不是传统意义上的工作流,而是一款引爆 iOS 社区的限免软件。 那Workflow究竟是一款什么软件呢,为
2017-03-24 14:42:01 4791
原创 android classloader双亲委托模式
概述ClassLoader的双亲委托模式:classloader 按级别分为三个级别:最上级 : bootstrap classLoader(根类加载器) ; 中间级:extension classLoader (扩展类加载器) 最低级 app classLoader(应用类加载器)。根(Bootstrap)类加载器:该加载器没有父加载器。它负责加载虚拟机的核心类库,如java.lang.*等。例
2017-03-23 17:20:06 14313
原创 深入理解Android Instant Run运行机制
Instant RunInstant Run,是android studio2.0新增的一个运行机制,在你编码开发、测试或debug的时候,它都能显著减少你对当前应用的构建和部署的时间。通俗的解释就是,当你在Android Studio中改了你的代码,Instant Run可以很快的让你看到你修改的效果。而在没有Instant Run之前,你的一个小小的修改,都肯能需要几十秒甚至更长的等待才能看到修
2017-03-22 10:59:52 13769
原创 android 自定义控件那些事
概述在android应用开发过程中,固定的一些控件和属性可能满足不了开发的需求,所以在一些特殊情况下,我们需要自定义控件与属性。而自定义控件通常有两种:自定义View和自定义ViewGroup。View树首先看一下Android视图的组成结构: View树的绘制原理:树的遍历是有序的,由父视图到子视图,每一个 ViewGroup 负责测绘它所有的子视图,而最底层的 View 会负责测绘自身。mea
2017-03-21 13:53:16 1479
原创 mac 搭建Android开发环境
在mac上搭建Android环境和在window上大体相同,不过就是在做环境变量配置等方面有自己独到的方式,那么我们今天就讲一下在mac系统下搭建Android环境。下载相关文件下载的文件包括Java、Android Studio。Java下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-21331
2017-03-20 19:36:12 17826 2
原创 从代码层读懂HashMap的实现原理
概述 Hashmap继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。它的key、value都可以为null,映射不是有序的。 Hashmap不是同步的,如果想要线程安全的HashMap,可以通过Collections类的静态方法synchronizedMap获得线程安全的HashMap。Map map = Colle
2017-03-19 22:25:26 3707 2
原创 深入理解Android渲染机制
基础知识CPU: 中央处理器,它集成了运算,缓冲,控制等单元,包括绘图功能.CPU将对象处理为多维图形,纹理(Bitmaps、Drawables等都是一起打包到统一的纹理)。GPU:一个类似于CPU的专门用来处理Graphics的处理器, 作用用来帮助加快格栅化操作,当然,也有相应的缓存数据(例如缓存已经光栅化过的bitmap等)机制。OpenGL ES:是手持嵌入式设备的3DAPI,跨平台的、功能
2017-03-18 14:33:52 7138 4
原创 OpenGL ES简介
概述在聊Android的View渲染流程中,通常会有一个比较核心的步骤:通过OpeGL ES接口调用GPU接口通知GPU绘制图形。其完整的流程:UI对象—->CPU处理为多维图形,纹理 —–通过OpeGL ES接口调用GPU—-> GPU对图进行光栅化(Frame Rate ) —->硬件时钟(Refresh Rate)—-垂直同步—->投射到屏幕。详解的绘制原理,后面会慢慢讲的。渲染的基础知识使用
2017-03-17 18:08:19 5234
原创 Android实现仿支付宝流水
今天给大家讲的是如何自定义下拉的ListView实现支付宝账单的效果,月份是需要悬浮的,然后没一个月归为一类,先看一个效果图吧。场景:后台下发的数据就是一个List<对象>,考虑到实际情况,还需要做下拉的分页操作,所以,基于上面的情况,我们需要自定义一个可以拦截月份的view。先定义一个FooterView类。public class ListViewFooter extends LinearLay
2017-03-17 16:02:07 7794 4
原创 Mac搭建 React Native 工具篇Atom+Nuclide
关于如何在mac下搭建React环境这里就不详细介绍了,有兴趣的朋友可以看:在Mac上搭建RN基础环境,今天要说的是如何在mac下使用Atom+Nuclide组合环境来开发项目。安装Atom如果没有的大家可以到官网下载:https://atom.io/,也可以到国内的镜像地址下载:https://npm.taobao.org/mirrors/atom/1.7.2/ 解压atom,打开atom,你看
2017-03-15 22:43:07 7233 3
原创 关于Android studio报junit错误的问题
概述前不久,打开以前的Android项目,报了一个 错: Exception in thread “main” Java.lang.NoClassDefFoundError: junit/textui/ResultPrinter ,详细信息如下:Exception in thread "main" java.lang.NoClassDefFoundError: junit/textui/Result
2017-03-15 18:06:10 3253
原创 android 自定义Lint
概述Android Lint是Google提供给Android开发者的静态代码检查工具。使用Lint对Android工程代码进行扫描和检查,可以发现代码潜在的问题,提醒程序员及早修正。为什么要自定义我们在实际使用Lint中遇到了以下问题:原生Lint无法满足我们团队特有的需求,例如:编码规范。原生Lint存在一些检测缺陷或者缺少一些我们认为有必要的检测。对于正式发布包来说,debug和verb
2017-03-14 12:40:03 3784 2
原创 Android面试题整理
似乎自去年下半年以来,大家跳槽的少了,还有有些公司裁员了,前几年火热的移动端、前端岗位也越来越少,回归理性。现在各大公司对移动Android/ios的需求基本要求都是三年以上相关经验,有过大型互联网项目经验,基础扎实。那么对于我们从事Android开发的程序员,我们究竟需要掌握哪些技术呢?面试官究竟会问什么呢?今天,结合我的面试经验,给大家整理一下。Android常见面试题整理以我的经...
2017-03-12 20:05:04 5404
原创 一起来聊聊虚拟红包的技术实现
2017年1月20日,腾讯发布消息称将推出Q-Glass,除了一般VR眼镜的标配功能外,Q-Glass还能实现眨眼抢红包。听起来是不是很酷炫?上市时间可要在10年后。不过,2016年底支付宝首推AR实景红包,QQ也紧随其后,一场AR实景红包大战悄然打响。 作为最近两年比较热门的技术,VR技术悄然成为移动技术之后有一大竞相追逐的技术,目前市面上比较成熟和出名的VR开发商,诸如:Google VR,O
2017-03-11 22:53:33 5404 1
原创 ios入门之消息推送
前言在去年的苹果大会上,苹果带来的iOS 10 系统中将之前繁杂的推送通知统一成UserNotifications.framework 来集中管理和使用通知功能,还增加一些实用的功能——撤回单条通知、更新已展示通知、中途修改通知内容、在通知中显示多媒体资源、自定义UI等功能。 那么在ios10之前,ios的消息推送是怎么分类的呢?ios 10之前在ios之前,iOS推送分为Local Notifi
2017-03-11 09:48:59 1814
原创 IOS入门之StoryBoard
概述在iOS的发展历程中,IOS开发经历了三种主要流派:使用代码手写UI及布局;使用单个xib文件组织viewController或者view;使用StoryBoard来通过单个或很少的几个文件构建全部UI。而在最近几年的开发中,苹果对 Storyboard 的开发力度也不断增强,添加了更多功能和特性,大大方便了界面的开发、适配以及提升代码性能。我们来看看三种方式的主要区别:手写页面和逻辑代码如果你
2017-03-08 22:18:25 5781
原创 Android通信安全之HTTPS
HttpsHTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL
2017-03-07 22:03:10 2289
原创 Android的.so文件你需要知道那些知识
.so文件的前世今生早期的Android系统几乎只支持ARMv5的CPU架构,而现在它可以支持7种,几乎涵盖了市面上大部分的CPU架构。Android系统目前支持的CPU架构主要包含以下7种:ARMv5,ARMv7 (从2010年起),x86 (从2011年起),MIPS (从2012年起),ARMv8,MIPS64和x86_64 (从2014年起),每一种都关联着一个相应的ABI。二进制接口(AB
2017-03-05 22:50:51 3972
原创 Android 配置Freeline教程
Freeline简介Freeline是蚂蚁金服旗下一站式理财平台蚂蚁聚宝团队15年10月在Android平台上的量身定做的一个基于动态替换的编译方案,5月阿里集团内部开源,稳定性方面:完善的基线对齐,进程级别异常隔离机制。性能方面:内部采用了类似Facebook的开源工具buck的多工程多任务并发思想:端口扫描,代码扫描,并发编译,并发dx,并发merge dex等策略,在多核机器上有明显加速效果,
2017-03-05 18:14:35 2809
原创 Mac 高效工作指南
序很多做开发的程序员,都喜欢用mac,其绚丽的外观,加上手感体验,很适合开发和装逼用。其实除了这些为什么那么多程序员喜欢用mac呢,分析了一下使用mac的好处,无外乎以下几点:Mac OS X 是基于 Unix 的,对于开发人员来说,Unix 下一堆好用的工具都可以随手捡到。并且好多的后端开发都是需要unix或linux的环境支持的。不需要维护。Mac 买来就直接用,磁盘碎片整理?不需要。装驱动
2017-03-04 11:45:06 3052
转载 你想了解的前端知识都在这里了
前端开发全面知识库,包括HTML5,CSS3和js的基本框架知识,以及DOM和BOM操作的基础知识和一些基本工具和IDE。学习本篇,你将了解到以下知识。核心 CoreHTML5W3C http://www.w3school.com.cn/html5/ W3C https://www.w3.org/html/ig/zh/wiki/HTML5 菜鸟教程 http://www.runoob.com/h
2017-03-02 16:17:15 3949
原创 React Native之Picker组件详解
Picker简介在iOS和Android中选择器(Picker)是常见的控件之一,比如TimePickr(Android),pickerView(ios),并且这些基本控件可以实现诸如地址选择等效果。在RN开发中,系统也为我们提供Picker控件。应用如下:
2017-03-01 22:45:18 17965 9
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关注的人