- 博客(115)
- 资源 (15)
- 收藏
- 关注
原创 [Android开发]你所忽略过的Fragment的坑
WiKi本文从几个实验开始,到无UI的Fragment,详解Fragment使用过程中可能忽略的相关用法和各种坑。参考Fragment全解析系列(一):那些年踩过的坑 Fragment全解析系列(二):正确的使用姿势 Android中保存和恢复Fragment状态的最好方法Replace、Add、Hide\Show的区别Hide\Show只影响可见性,并不会影响声明周期。** * Hides
2016-11-20 12:47:51 2892 1
原创 [Android开发]从Android官方Demo谈RecyclerView的用法
WiKiRecyclerView是Android5.0中出现的新控件,官方API解释就一句话: A flexible view for providing a limited window into a large data set整体架构如下图: RecyclerView的灵活性体现在6个方面:可以控制显示方式,包括三个内置的不觉管理器,也可以定制LinearLayoutManager
2016-11-06 16:40:04 3300
原创 【算法导论-37】Graph的Java实现
前言之前的博客“【算法导论-35】图算法JGraphT开源库介绍”中提到的开源版本的图算法。然而,继续《算法导论》的学习必须自己实现Graph。所以,放弃使用该库,实现自己的Graph类。 注意,本篇博客紧密结合《算法导论》第22章,深度优先、广度优先、拓扑排序算法都取自相关章节的伪代码,这里不再讲解相关原理。Graph的实现基础的Graph类的实现包括以下: ☆支持有向图和无向图两种类型;
2016-09-09 20:11:25 7014
原创 【算法导论-36】并查集(Disjoint Set)详解
WiKiDisjoint是“不相交”的意思。Disjoint Set高效地支持集合的合并(Union)和集合内元素的查找(Find)两种操作,所以Disjoint Set中文翻译为并查集。 就《算法导论》21章来讲,主要设计这几个知识点: 用并查集计算图的连通区域; 判断两个顶点是否属于同一个连通区域; 链表实现并查集; Rooted tree实现并查集;
2016-09-03 11:33:03 8568
原创 【算法导论-35】图算法JGraphT开源库介绍
Wiki《算法导论》从22章开始图算法。但是Java JDK中没有Graph相关的库,自己实现的话可维护性较差。 JGraphT是一个开源的图理论数据结构和算法的开源库。可以在学习《算法导论》的同时学习该库,同时可以基于该库实现《算法导论》中相关图算法。相关资料JGraphT主页 JGraphT 源码GitHub主页 JGraphT jar包GitHub主页 JGraphT实现细节简单实例将
2016-08-23 17:44:02 6756
原创 【算法导论-34】红黑树、顺序统计树的Java实现
Wiki在《算法导论》网易公开课的“扩充的数据结构、动态有序统计和区间树”这节课中,作者提供了由两种新型数据结构,即动态有序统计树(Dynamic Order Static Tree,简写为OSTress)和线段树。这两种数据结构都是通过红黑树来扩展产生的。红黑树的java实现在我的博客“【算法导论学习-26】 二叉树专题4:红黑树、AVL树、B-Tree”中,描述了几种树型数据结构的应用场景。红黑
2016-08-18 17:05:16 1588 1
原创 【Android开发】Volley学习笔记
WiKiAndroid2.2之前,最佳实践是采用HttpClient;Android 2.2版本之后,HttpURLConnection则是最佳的选择。在Android 5.0则全面废弃了HttpClient。 Volley是Gooogle I/O 2013发布的一个处理和缓存网络请求的库, 总共有3层架构。 volley适合小而快的数据传输。Volley应该是简化了网络通信的一些开发,特别是针
2016-08-16 20:40:46 542
原创 【算法导论33】跳跃表(Skip list)原理与java实现
WiKiSkip list是一个用于有序元素序列快速搜索的数据结构,由美国计算机科学家William Pugh发明于1989年。它的效率和红黑树以及 AVL 树不相上下,但实现起来比较容易。作者William Pugh是这样介绍Skip list的: Skip lists are a probabilistic data structure that seem likely to supplant
2016-08-14 21:12:48 9387 5
原创 小米公司Android工程师社招面试(2016/08/03)
我在2016年8月3日下午3点半~6点半进行了三轮面试,除了自己做过的项目,也问了一些通用的问题。 当时本人能回答的包括: AsyncTask和Handler+Thread机制的区别; 哈希表原理 红黑树(由Java 8中HashMap的新特性引申) Int类型整数二进制1的个数(算法题,手写) 楼梯走法次数(算法题,手写) …… 当时
2016-08-06 16:58:37 9609 3
原创 Java线程池原理与实例详解
Wiki采用new Thread的方式产生多线程,可能有以下一些问题: 线程的创建和销毁开销很大,尤其是有些线程的存在时间较短; 线程的创建和销毁过程中伴随着CPU在线程间的切换,开销很大; 线程池的优点有: 减少了创建和销毁线程的次数,工作线程可以一直重用。 在java中,每个线程都归属于某个ThreadGroup来管理。ThreadGroup源码分析首先看成员变
2016-08-06 15:38:06 2222
原创 【算法导论32-Java中如何覆写Hashcode()函数】
Hash函数今天看了网易公开课上《算法导论》关于Hash Tables的视频。 Hash函数最简单设计是通过对质数取余的方式进行,但是这涉及到取余运算,并不是一个高效算法。然后视频讲师又提供了另外一个hash函数(《算法导论》中并没有,这里就不给出了),采用乘法和位运算来提高效率。 在Java编程中,如果使用Java API下的Hash数据结构HashTable和HashMap来存储key-va
2016-07-24 21:17:52 1538
原创 【算法导论学习-31】分治法解决同一个数连乘问题
同一个数连乘问题今天再看网易公开课上的算法导论,其中提到了这个pow(double x,int n)可以采用分治法。这里实现一下: /** * 分治法求解pow(double x,int n) * 参考:*http://blog.csdn.net/u012162613/article/details/41361655 * * */ public
2016-07-10 21:12:46 1242
原创 树状数组Binary Indexed Trees详解与Java实现
WiKi树状数组是由Peter Fenwick在1994年提出的,所以又称为Fenwick Tree。数组的区间求和的复杂度是O(n),树状数组可以将数组区间求和的复杂度降低到O(lg n)。这对于长数组的高频率区间求和的应用场景来讲,可以提高效率。参考树状数组(Binary Indexed Trees) 搞懂树状数组详解这里从上面的参考中总结我的思路。 树状数组通过树形结构对原始数组进行预处理
2016-07-09 22:16:31 4240 1
原创 【超级宝典(第5版)】第二章:第一个三角形
1 知识点1.1 视口坐标:原点位于屏幕左下角 Opengl规范化坐标系x、y个方向为[-1,1],会映射到视口的宽和长。如果视口的长宽相等,能保证几何图形长宽比一致;否则,就会出现变形。例如下面几种情况://根据用户拉伸窗口的方式改变视口,图形也随之放大缩小以及变形void ChangeSize(int w, int h){ glViewport(0, 0, w, h);}//根据
2016-07-03 17:00:54 810
原创 【计算机图形学】OpenGL+VS2015相关类库配置
opengGL相关库的配置,包括glew、freeglut、GLTools、GLM
2016-06-09 23:40:10 14039 14
原创 【WPF开发】无人机HUD (Head Up Display)开源控件
WiKiHUD即Head Up Display,用于显示无人机的三个姿态角,即俯仰角(Pitch)、翻滚角(Roll)、偏航角(Yaw)。例如下面的视图。 相关资料gitHub主页:https://github.com/fengdingfeilong/HUD使用从GitHub上下载后,用VS2015打开,直接运行,即可直接运行出来里面的实例。可以点击解决方案中HUD工程,build出DLL文件。
2016-05-26 12:27:14 4355
原创 【WPF开发】WpfGauge:开源仪表盘(Gauge)的使用
WpfGauge:WPF版本开源仪表盘(Gauge)的使用wpfgauge是一款.net平台WPF版本的开源仪表盘,包括了源码和使用实例。官网地址是: https://wpfgauge.codeplex.com/ 官网效果图 分析运行Dmeo有两种方式可以使用它。首先,解压附件wpfgauge-33505.zip,通过VS2013或VS2015打开解决方案,目录是wpfgauge-33505\
2016-05-20 20:41:12 10066 3
原创 【Android开发】开源库AndroidSlidingUpPanel详解
1 WikiAndroidSlidingUpPanel提供了一种通过向上拖动添加额外面板(sliding panel)的开源库,由Umano公司开发提供。下图是Umano的客户端。 Umano公司是成立于2012年的创业公司,他们雇佣专业的声音演员,提供新闻的朗读服务,于2015年底被DropBox收购。2 相关资料Github主页:https://github.com/umano/Andro
2016-04-04 23:19:11 9333 3
原创 【Android开发】greenrobot三大开源利器详解(一)——EventBus
一、greenrobot介绍greenrobot相关信息较少,可以确信是一个开源组织。官网:http://greenrobot.org/。 greenrobot主要开发并维护了3个Android开源库,即greenDAO、EventBus、和Essentials。三个开源库都可以在GitHub上进行下载。本节讲解其中最著名的EventBus。二、EventBus概述EventBus的官方解释是:“
2016-03-15 23:16:29 16174
原创 【无人机开发】通讯协议MavLink详解
1. MAVLink简介MAVLink(Micro Air Vehicle Link,微型空中飞行器链路通讯协议)是无人飞行器与地面站(Ground Control Station ,GCS)之间通讯,以及无人飞行器之间通讯最常用的协议。它已经在PX4、APM、PIXHAWK和Parrot AR.Drone飞控平台上进行了大量测试。2.发明者Lorenz Meier简介MAVLink的最初开发于20
2016-03-08 00:00:00 26447 3
原创 【Android开发】Android跨进程通讯(AIDL)官方文档及官方Demo讲解
第一章、 关于Android跨进程的思考先来回顾一下操作系统中的一些概念。 同一个进程中可以有多个线程,线程间通信可以直接取得地址。因为Java程序的内存分配在连续的地址空间。 默认一个Java程序会开启一个进程,运行在JVM中。但是一个JVM是可以开启多个进程的。 一个或多个操作系统可以开启多个JVM,多个JVM之间依赖TCP通讯的方法调用即Java的RMI(Remo
2016-02-25 22:42:10 2980
原创 【Android开发】BitMap优化最佳实践及官方Demo“图片墙”实例详解
本文以官方文档和Demo为核心,全面讲解了BitMap优化的最佳实践。
2016-01-27 23:45:08 1892
原创 【Android 开发】深入理解内存缓存类LruCache:源码分析
ruCache是Android API实现的用于内存缓存的类,LRU即“Leatestrecent used”的缩写,典型应用是集中展示多个BitMap。这里讲解了其源码。
2016-01-27 12:40:41 1261
原创 根据itemView的大小计算ListView动态大小
1.问题产生 在PopupWindow中放置一个ListView,点击Button后希望让PopupWindow显示在Button正上方。实现ListPopWindow继承PopupWindow,位置显示要求在正上方。 public void showPopWindow(View parent) { if (!isShowing()) { i
2015-10-27 21:54:49 3296
原创 解释:ListView适配Button、CheckBox时OnItemClickListener无响应
解释:ListView适配Button、CheckBox时OnItemClickListener无响应
2015-10-25 14:46:10 1260
原创 【Android开发】UncaughtExceptionHandler接口详解
Android开发:UncaughtExceptionHandler接口详解
2015-09-14 20:49:08 2749 2
原创 PagerSlidingTabStrip的分析和使用
PagerSlidingTabStrip是GitHub上一个开源项目(地址:https://github.com/astuetz/PagerSlidingTabStrip)用于获得同样的Tab翻页效果。与官方ActionBar的Tab不同的是,Tab不属于ActionBar,而是通过TextView自定义了Tab,并通过与ViewPager联动,实现点击Tab和侧滑均能翻页的效果。
2015-08-23 10:56:40 2675
转载 Autoboxing and Unboxing
转折地址:http://docs.oracle.com/javase/tutorial/java/data/autoboxing.html
2014-10-10 09:59:37 870
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人