Android开源框架之ImageLoader

特点多线程下载图片,图片可以来源于网络,文件系统,项目文件夹assets中以及drawable中等支持随意的配置ImageLoader,例如线程池,图片下载器,内存缓存策略,硬盘缓存策略,图片显示选项以及其他的一些配置支持图片的内存缓存,文件系统缓存或者SD卡缓存支持图片下载过程的监听根据控件(ImageView)的大小对Bitmap进行裁剪,减少Bitmap占用过多的内存较好的控制...
分类: 其他 发布时间: 02-28 08:54 阅读次数: 0

Android开源框架之Fresco

简介Fresco是Facebook最新推出的一款用于Android应用中展示图片的强大图片库,可以从网络、本地存储和本地资源中加载图片。相对于ImageLoader,拥有更快的图片下载速度以及可以加载和显示gif图等诸多优势,是个很好的图片框架。特点内存管理:在5.0以下系统,Fresco将图片放到一个特别的内存区域。当然,在图片不显示的时候,占用的内存会自动被释放。这会使得APP更加流畅...
分类: 其他 发布时间: 02-28 08:54 阅读次数: 0

二叉树基础(上)

首先来看,什么是“树”?再完备的定义,都没有图直观。所以我在图中画了几棵“树”。你来看看,这些“树”都有什么特征?树里面每个元素我们叫作“节点”;用来连线相邻节点之间的关系,我们叫作“父子关系”。比如下面这幅图,A节点就是B节点的父节点,B节点是A节点的子节点。B、C、D这三个节点的父节点是同一个节点,所以它们之间互称为兄弟节点。我们把没有 父节点的节点叫作根节点,也就是图中的节点E。我们...
分类: 其他 发布时间: 02-28 08:54 阅读次数: 0

Android开源框架之Android-PullToRefresh

简介PullToRefresh是一套实现非常好的下拉刷新库,它支持:ListView、ExpandableListView、GridView、WebView、ScrollView、HorizontalScrollView、ViewPager等多种常用的需要刷新的View类型,而且使用起来也十分方便。使用下载及官方案例地址:https://github.com/chrisbanes/Andr...
分类: 其他 发布时间: 02-28 08:53 阅读次数: 0

Android开源框架之UniversalVideoView

简介在Android上播放视频最简单的方法是使用SDK中内置的VideoView,然后加上MediaController来控制视频播放暂停等,但是这样有一个缺点是无法定制自己的控制UI,所以这里提供一个自定义播放控件,它可以设置多种自定义属性(如loading样式,错误视频等),并且很容易在全屏与非全屏之间切换,另外支持Android V2.3及以上系统.使用下载地址:https://gi...
分类: 其他 发布时间: 02-28 08:53 阅读次数: 0

Android开源框架之Banner

简介Banner能实现循环播放多个广告图片和手动滑动循环等功能。因为原生ViewPager并不支持循环翻页, 要实现循环还得需要自己去动手。Banner框架可以进行不同样式、不同动画设置, 以及完善的api方法能满足大部分软件首页轮播图效果的需求。使用下载地址:https://github.com/youth5201314/banner项目关联库dependencies{ ...
分类: 其他 发布时间: 02-28 08:53 阅读次数: 0

Android开源框架之TabLayout

简介我们在应用viewpager的时候,经常会使用TabPageIndicator来与其配合。达到很漂亮的效果。但是TabPageIndicator是第三方的,而且比较老了,当然了现在很多大神都已经开始自己写TabPageIndicator来满足自己的需求,在2015年的google大会上,google发布了新的Android Support Design库,里面包含了几个新的控件,其中就有一个...
分类: 其他 发布时间: 02-28 08:53 阅读次数: 0

Android开源框架之OpenDanmaku

简介OpenDanmaku是Android中第三方的弹幕控件,在播放视频和直播软件中过程中弹出用户的评论,并且以滚动的方式显示。使用下载地址:https://github.com/linsea/OpenDanmaku项目关联库Gradle dependencies { compile 'com.linsea:opendanmaku:1.0.0@a...
分类: 其他 发布时间: 02-28 08:52 阅读次数: 0

NodeJS基础知识之1

简介Node.js是一个能够在服务器端运行JavaScript代码的跨平台JavaScript运行环境。Node大部分模块都是用JavaScript编写。在Node出现之前,JS通常作为客户端程序设计语言使用,以JS写出的程序常在用户的浏览器上运行。Node.js可以理解成一个已经实现好功能的服务器,它通过命令行的形式将程序员实现好功能的js代码导入服务器中运行进而得到结果。程序员也可以...
分类: 其他 发布时间: 02-28 08:52 阅读次数: 0

NodeJS基础知识之2

包(Package)CommonJS的包规范允许我们将一组相关的模块组合到一起,形成一组完整的工具。CommonJS的包规范由包结构和包描述文件两个部分组成。包结构:用于组织包中的各种文件包描述文件:描述包的相关信息,以供外部读取分析包结构注意:除了package,json文件是必需的之外,其他文件都是非必需的。包描述文件NPM(Node Package Manager)...
分类: 其他 发布时间: 02-28 08:52 阅读次数: 0

软件架构形式

C/S(客户端/服务器)一般我们使用的软件都是C/S架构,例如:QQ、微信、淘宝C代表客户端,用户通过客户端来使用软件S表示服务器,服务器负责处理软件的业务逻辑特点软件使用前必须得安装,像手机或电脑使用QQ、微信都要安装客户端软件更新时,服务器和客户端同时更新C/S架构的软件不能跨平台使用,像手机版的QQ不能再windows上运行C/S架构的软件客户端和服务器通信采用的是自己...
分类: 其他 发布时间: 02-28 08:51 阅读次数: 0

Android开发之ProGuard技术

ProGuard简介ProGuard一共包括以下4个功能,其中每个功能都是可选的,我们可以通过配置脚本来决定执行其中的哪几个功能,ProGuard的执行流程如下图。压缩(Shrink):侦测并移除代码中无用的类、字段、方法和属性。优化(Optimize):对字节码进行优化,移除无用的指令。混淆(Obfuscate):使用a、b、c、d这样简短而无意义的名称,对类、字段和方法进行重命名。...
分类: 其他 发布时间: 02-28 08:51 阅读次数: 0

Android Studio中的Git实践

Git是一个开源、分布式的版本控制系统,与集中式版本控制系统(如SVN)最大的区别在于每个开发者都会有一个本地仓库,代码可以提交到本地,不需要依赖远程代码仓库。创建远程仓库通常一个项目需要创建一个远程代码仓库。我们可以使用GitHub、GitLab等代码托管平台,或者也可以使用GitLab、Gitblit等部署一个代码服务器。创建一个远程空仓库的时候,不要添加README、.gitigno...
分类: 其他 发布时间: 02-28 08:51 阅读次数: 0

Android开源框架之Retrofit

Retrofit是一个类型安全的HTTP的客户端,在Android和Java中都可使用。Retrofit通过注解实现RESTful网络接口,底层使用Okhttp完成网络请求的实现。另外,Retrofit封装了主线程和子线程的切换以及网络数据的解析,在使用上要比OkHttp便利不少。Retrofit的使用步骤添加依赖dependencies { //Retrofit依赖 c...
分类: 其他 发布时间: 02-28 08:51 阅读次数: 0

TypeScript基础入门1

安装TypeScript使用命令 npm i typescript --save即可为当前目录安装typescript,但是typescript的tsc命令并不能直接运行typescript代码,它只是将ts代码编译成js代码,生成一个js文件,所以通常我们还会安装typescript的运行时ts-node:npm i -g ts-node.注意:ts-node并不等于typescript的node.js,仅仅封装了typescript的编译过程,提供直接运行typescript的能力。类型与函数
分类: 其他 发布时间: 02-28 08:50 阅读次数: 0

TypeScript基础入门2

函数与js一样,ts可以创建有名字的函数和匿名函数。定义函数function add(x: number, y: number): number { return x + y;}//有名字的函数let myAdd = function(x: number, y: number): number { return x + y; };//匿名函数函数类型包含了两个部分:参数类型和返回值类型.所以我们可以给一个变量赋值一个函数类型:let add2:{x:number,y:numb
分类: 其他 发布时间: 02-28 08:50 阅读次数: 0

Java基础提升篇之深入理解Java三大特性

封装在java中封装是把一个对象的属性私有化,同时提供一些接口(方法)给外界调用,用于与外界进行交互。简单来说,就是类中的属性都把它的访问权限设置为private,然后根据业务需求提供访问权限为public的方法(get方法或set方法或其他方法)给外界调用。当然,这条原则并不是教条,在有的业务需求中将属性的访问权限设置为public会跟简单一些。但是,我本人还是比较拥护上面这条原则。话不多说,举个栗子//我们使用两种不同的方式来实现一个Person类//1.将类中的属性设置为private,
分类: 其他 发布时间: 02-28 08:49 阅读次数: 0

Apache Calcite精简入门与学习指导

Apache Calcite快速入门与核心学习指导,带你快速掌握Calcite的基础用法
分类: 企业开发 发布时间: 02-28 08:49 阅读次数: 0

Android开发之详解广播机制

广播机制简介Android中的每个应用程序都可以对自己感兴趣的广播进行注册,这样程序只会收到自己所关心的广播内容,这些广播可能是来自于系统的,也可能是来自于其他应用程序的。Android中的广播主要可以分为两种类型:标准广播和有序广播。标准广播:是一种完全异步执行的广播,在广播发出之后,所有的BroadcastReceiver几乎会在同一时刻收到这条广播信息,因此它们之间没有任何先后顺序可言。有序广播:一种同步执行的广播,在广播发出之后,同一时刻只会有一个BroadcastReceiver能够收到
分类: 其他 发布时间: 02-28 08:49 阅读次数: 0

跨程序共享数据,探究ContentProvider

Android的数据持久化技术,包括文件存储、SharedPreferences存储以及数据库存储。使用这些持久化技术所保存的数据只能在当前应用程序中访问。虽然文件存储和SharedPreferences存储中提供了MODE_WORLD和MODE_WORLD_WRITEABLE这两种操作模式,用于供给其他应用程序访问当前应用的数据,但这两种模式在Android4.2版本中都已被废弃了。因为Android官方推荐更加安全可靠的ContentProvider技术。可能你会问为什么要将我们程序中的数据共享给其他
分类: 其他 发布时间: 02-28 08:48 阅读次数: 0