- 博客(30)
- 资源 (156)
- 收藏
- 关注
原创 hello Kotlin
1.1 Kotlin的身世写了许久 Java,有没有发现其实你写了太多冗余的代码?后来你体验了一下 Python,有没有觉得不写分号的感觉真是超级爽?你虽然勤勤恳恳,可到头来却被 NullPointerException 折磨的死去活来,难道就没有受够这种日子么?直到有一天你发现自己已经写了好几十万行代码,发现居然全是 getter 和 setter!哈哈,实际上你完全可以不用这么痛苦,用 Kot
2016-10-28 14:56:58 4672 2
原创 android 特卖列表倒计时卡顿问题
在Android的开发中,我们经常遇见倒计时的操作,通常使用Timer和Handler共同操作来完成。当然也可以使用Android系统控件CountDownTimer,这里我们封装成一个控件,也方便大家的使用。首先上一张效果图吧:说一下造成卡顿的原因,由于滑动的时候,adapter的getView频繁的创建和销毁,就会出现卡顿和数据错位问题,那么我们每一个item的倒计时就需要单独维护,这里我用的
2016-10-27 20:36:09 5906
原创 android插件化之路
在说插件化之前,我们的理解三个概念:插件化,组件化,动态加载(又叫热加载)Android 插件化 —— 指将一个程序划分为不同的部分,比如一般 App 的皮肤样式就可以看成一个插件 Android 组件化 —— 这个概念实际跟上面相差不那么明显,组件和插件较大的区别就是:组件是指通用及复用性较高的构件,比如图片缓存就可以看成一个组件被多个 App 共用 Android 动态加载 —— 这个实际是更
2016-10-20 20:11:28 5416
原创 初识Node.js
相信对于专注javascript发展的同学来说,nodejs已经不是一个陌生的词眼。有关nodejs的相关资料网上已经铺天盖地。由于它的高并发特性,造就了其特殊的应用地位。借用Node.js官网的定义:Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 np
2016-10-17 22:07:38 4728 1
原创 Android动画深入分析
动画分类Android动画可以分3种:View动画,帧动画和属性动画;属性动画为API11的新特性,在低版本是无法直接使用属性动画的,但可以用nineoldAndroids来实现(但是本质还是viiew动画)。学习本篇内容主要掌握以下知识:1,View动画以及自定义View动画。2,View动画的一些特殊使用场景。3,对属性动画做了一个全面的介绍。4,使用动画的一些注意事项。view动画View动
2016-10-02 23:09:54 4563 1
原创 原型模式
概念: 是一种创建型设计模式,它通过复制一个已经存在的实例来返回新的实例,而不是新建实例。被复制的实例就是我们所称的原型。原型模式的拷贝:分为"浅拷贝"和"深拷贝"。(这个和我们理解的拷贝是一样的)浅拷贝: 对值类型的成员变量进行值的复制,对引用类型的成员变量只复制引用,不复制引用的对象.深拷贝: 对值类型的成员变量进行值的复制,对引用类型的成员变量也进行引用对象的复制.组成原型模式涉及到三个角色
2016-10-30 22:03:49 1589
原创 解决Scrollview 嵌套recyclerview不能显示,高度不正常的问题
我们先看一个效果,问题说的就是中间的Grid效果在Scrollview 嵌套recyclerview显示问题,在Android Api 24是好的,不过在5,1,1版本(api 22)缺出现了问题最近项目中,有一个商品详情页面,页面有好几个网格页面,大家说,我们大可以用GridView去做,但是需要方的要求是,我们的网格的中间的线怎么做呢,对于GridView,我们知道我们可以这是一个背景,然后用
2016-10-29 18:18:58 5277
原创 android RecycleView Adapter简单封装
早些时候我们使用系统提供个的BaseAdapter的时候为了满足大家的需要,我们总会对BaseAdapter做一层上层的封装,然后对于实际业务我们只需要关心getView里面的View即可,是代码可读性和可维护性更高,特别是在多View的界面,这个优势就体现出来了,自从Android 5.0后系统提供的,先不说效率如何,这个既然是Google为我们提供的,我们姑且用之,不过说实话,对于它的写法不习
2016-10-29 17:48:03 2229
转载 Qzone React Native改造
Android Qzone 6.1版本在情侣空间涉水React Native,以动态插件方式将情侣空间进行React Natived的改造。在情侣空间基础上,Android Qzone 6.2版本以融合的方式将话题圈进行React Native改造。本文主要讲述话题圈的开发改造流程,相关数据对比及性能优化,本次改造ReactNative基于15Release。一、Android侧项目整体开发流程二
2016-10-27 20:40:23 1577
转载 ios zxing扫码问题
在ios 中 扫瞄二维码,条形码基本有 2中第三方的库,一个是zbar 一个是zxing,zxing 在android中表现的比较出色,但是在ios 中不是很好用,扫瞄效率低,我们一般都用zbar,但是有些 条形码就是很奇葩,用zbar无法识别,下面就是一种 我用了好多ios 的app 都无法识别, 《我查查》,《快拍二维码》,《微信》,自己用zbar都不行,最后用android 手机轻松扫瞄ok
2016-10-27 16:54:20 1592 1
转载 收藏了4年的Android 源码分享
Android 超过2个G的源代码集合~~几乎涵盖了所有功能效果的实现,一应俱全~~应有尽有~~360云盘地址:Android 各类源码集合汇总 (提取码:f930)另外,附上Github上及自己整理的一些代码集合~~Android手势处理集合框架 源码Android 一个简单的缓存框架 源码Android 一个流畅的PDF阅读器 源码Android 利用精简Zxing实现条形码/二维码 扫描De
2016-10-26 17:43:26 2248 1
原创 React实现动画效果
流畅、有意义的动画对于移动应用用户体验来说是非常必要的。和React Native的其他部分一样,动画API也还在积极开发中,不过我们已经可以联合使用两个互补的系统:用于全局的布局动画LayoutAnimation,和用于创建更精细的交互控制的动画Animated。AnimatedAnimated库使得开发者可以非常容易地实现各种各样的动画和交互方式,并且具备极高的性能。Animated仅关注动画
2016-10-25 09:14:23 6595
原创 解释器模式
解释器模式:解释器模式是类的行为模式。给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子。组成模式所涉及到4个角色:抽象表达式(Expression)角色:声明一个所有的具体表达式角色都需要实现的抽象接口。这个接口主要是一个interpret()方法,称做解释操作。终结符表达式(Terminal Expression)角色:
2016-10-23 19:39:19 1688
原创 策略模式
策略(Strategy)模式策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。概述策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组
2016-10-23 10:39:50 1751
原创 React Native网络请求
很多移动应用都需要从远程地址中获取数据或资源。你可能需要给某个REST API发起POST请求以提交用户数据,又或者可能仅仅需要从某个服务器上获取一些静态内容——以下就是你会用到的东西。新手可以对照这个简短的视频教程加深理解。使用FetchReact Native提供了和web标准一致的Fetch API,用于满足开发者访问网络的需求。如果你之前使用过XMLHttpRequest(即俗称的ajax
2016-10-22 10:13:37 11012 3
原创 android 使用Vysor投影到电脑
有没有好的投影软件可以将android屏幕投影到电脑,当然这种很多,比如360就自带了投影功能,小米盒子也可以(不过貌似只能支持到4.4版本),今天要说的是Vysor,google的一款投影软件。 Visor 的优点: 1、有线连接,画面传输速度快,延时小 在日常消费级的Android投屏领域,有非常多的应用提供无线的投屏演示功能。无线的有点是简单快捷,但是缺点也非常明显:延时严
2016-10-21 14:21:19 3827 1
原创 Android ClassLoader详解
我们知道不管是插件化还是组件化,都是基于系统的ClassLoader来设计的。只不过Android平台上虚拟机运行的是Dex字节码,一种对class文件优化的产物,传统Class文件是一个Java源码文件会生成一个.class文件,而Android是把所有Class文件进行合并,优化,然后生成一个最终的class.dex,目的是把不同class文件重复的东西只需保留一份,如果我们的Android应
2016-10-21 10:13:26 11200 1
原创 android EventBus 3.0使用指南
Enventbus的作用和好处我就不多说了,这里介绍下怎么使用。2.+版本的使用方法public void onEvent(MessageEvent event) { log(event.message);}public void onEventMainThread(MessageEvent event) { textField.setText(event.message);}
2016-10-19 19:59:41 2080
原创 Android 四种常见的线程池
引入线程池的好处1)提升性能。创建和消耗对象费时费CPU资源2)防止内存过度消耗。控制活动线程的数量,防止并发线程过多。我们来看一下线程池的简单的构造public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,
2016-10-19 09:43:16 5720
原创 Java注解
自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分。Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据。那么什么是注解呢?举一个简单的例子。@Overridepublic String toString() { return "This is String Represe
2016-10-18 19:15:57 2165
原创 Android View架构总结
View和Activity的区别View有哪些?ViewGroup是什么?为什么Google产生ViewGroup?View的层级结构是什么?View的onMeasure()/onLayout()/onDraw()方法做了什么?View和Activity的区别android的四大组件,Activity是四大组件中唯一一个用来和用户进行交互的组件。可以说Activity就是android的视图层。
2016-10-17 22:22:33 6880
原创 Android面试之高级篇
结合自己之前去很多大公司的面试经历和自己面别人的一些题,这里做一些总结,Android面试中常见的面试题。1,Android的Handler运行机制 要解释Handler的运行机制就要讲几个对象:Message、Handler、Message Queue、Looper。Handler获取当前线程中的looper对象,looper用来从存放Message的 MessageQueue中取出M
2016-10-16 12:05:38 1321
转载 android PakageManagerService启动流程分析
PakageManagerService的启动流程图1.PakageManagerService概述PakageManagerService是android系统中一个核心的服务,它负责系统中Package的管理,应该程序的安装、卸载等。后面PakageManagerService简称PMS。2.SystemServer启动PackageManagerService我之前的ATA文章有说到,Syst
2016-10-14 11:41:51 2793
原创 工具武装前端工程师
本文主要介绍前端开发中常用的工具集合。编辑器1. SublimeText(Windows/Mac)可以长期免费试用这个工具已经很火了,我之前是99%的码是这上面撸出来的。关键是它的小巧、简洁、快枪手,长大的文本打开速度也是杠杠的。编码垒字的神器,还能览图/文件对比/....拥有插件扩展机制,在它上面有一系列特别好用的插件,其中最喜欢的插件是 PlainTasks 我用它做一些简单的任务管理,比如
2016-10-13 11:21:13 1279
转载 View绘制流程
1. View 树的绘图流程当 Activity 接收到焦点的时候,它会被请求绘制布局,该请求由 Android framework 处理.绘制是从根节点开始,对布局树进行 measure 和 draw。整个 View 树的绘图流程在ViewRoot.java类的performTraversals()函数展开,该函数所做 的工作可简单概况为是否需要重新计算视图大小(measure)、是否需要重新安
2016-10-13 10:23:37 2622
原创 建造者模式
概念: 将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 [构建与表示分离,同构建不同表示]与工厂模式的区别:在建造者模式里,有个指导者,由指导者来管理建造者,用户是与指导者联系的,指导者联系建造者最后得到产品。即建造模式可以强制实行一种分步骤进行的建造过程。建造模式是将复杂的内部创建封装在内部,对于外部调用的人来说,只需要传入建造者和建造工具,对于内部是如何建造成成品的,调
2016-10-12 15:24:28 2121
转载 ECMAScript 6之Set和Map数据结构
Set基本用法ES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set本身是一个构造函数,用来生成Set数据结构。var s = new Set();[2, 3, 5, 4, 5, 2, 2].map(x => s.add(x));for (let i of s) { console.log(i);}// 2 3 5 4上面代码通过add方法向S
2016-10-11 17:28:06 1503
原创 java 之容器
在Java中,我们想要保存对象可以使用很多种手段。我们之前了解过的数组就是其中之一。但是数组具有固定的尺寸,而通常来说,程序总是在运行时根据条件来创建对象,我们无法预知将要创建对象的个数以及类型,所以Java推出了容器类来解决这一问题。Java的容器类分为List,Set,Queue和Map。我们也称它们为集合类(Collection)。Java使用泛型来实现容器类,例如我们要使用顺序表这一数据结
2016-10-10 18:54:30 1536
转载 Mpg123源代码详解
Mpg123与libmad一样,支持mpeg1,2,2.5音频解码。目前来看mpg123比libmad支持了网络播放功能。而且libmad基本上开源社区在2005年左右,基本停止更新,mpg123至今还在持续更新源代码。1. mpg123是如何支持某种音频驱动的?Mpg123跟liamad一样,向下也支持oss,alsa,win32等驱动,是如何支持的。Libmad是修改config文件
2016-10-10 15:46:51 3125
原创 Android Studio自动导包
很多同学在使用Android Studio的时候会发现不进行设置的话它不能自动的导入一些包名,当然有快捷键Alter + enter键但是只能导入一个。但是当我们的项目比较大的时候,有些代码和方法用的比较多的时候,我们手动导包会显得比较麻烦。1,setting或者选择studio的小小扳手然后就可以自动导入了。
2016-10-10 10:41:31 1107
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关注的人