- 博客(29)
- 资源 (2)
- 收藏
- 关注
原创 ffmpeg 学习笔记 --- Mac 下搭建 ffmpeg 开发环境
在 Mac 下编译 ffmpeg 并配置 Xcode ffmpeg 开发环境,运行 ffmpeg sample
2017-03-26 17:40:00
1086
原创 Linux 账号与群组
Linux 系统在识别我们的账号的时候并不是识别的我们的用户名而是 UID ,每一个账号会对应一个 UID 。账号与 UID 对应的信息被记录在 /etc/passwd 中。相同的 Linux 在识别群组的时候识别的是 GID ,GID 与群组对应的信息被记录在 /etc/group 中。
2016-11-06 16:30:41
509
原创 Shell 脚本简介
1. 什么是 Shell 脚本个人理解是:Shell 脚本就是为了完成某个功能将一系列的 bash 命令按照一定的规则记录在一起的文件。
2016-10-23 16:02:13
411
原创 BASH 学习 --- 结果筛选
1 前言在上篇文章 BASH 学习——变量中我们介绍了 BASH 的变量。本篇文章介绍如何在执行 bash 命令后得到的结果中获取我们想要的数据。2 通配符* :表示 0 到无穷多个任意字符; ? :表示有且有一个任意字符; [] :表示至少有一个中括号里的字符; [n-m] :表示 n 到 m 的连续字符,比如 [0-9] 表示 0 到 9 的数字; [^] :表示有一定有一个字符并且不是
2016-09-17 16:48:53
770
原创 BASH 学习——变量
在 Linux 中想要与系统交互,比如执行 cd 命令。要使用 Shell ,而 bash 是 Shell 的一种。本篇文章简单介绍 bash 的变量,以及如何设置环境变量
2016-09-11 15:35:33
599
原创 vim 使用详解
1 前言vim 是 Linux 下的一款强大的文本编辑器。但是对于像笔者这种刚刚接触 Linux 的菜鸟来说 vim 的使用就略显复杂了。本篇文章就详细介绍下 vim 的使用。2 vimvim 有三种模式:一般模式、编辑模式和命令模式。2.1 一般模式使用 vim filename 打开一个文本文件时就进入 vim 的一般模式,如果是在编辑模式或者命令模式下,按下 ESC 即计入一般模式。在 vim
2016-08-21 15:39:31
791
原创 PullToReFresh 实现 RecycleView 横向滑动的刷新和加载更多
前言一般的刷新和加载更多的效果都是竖直方向的(下拉刷新和上拉加载更多),本篇文章就利用 PullToReFresh 和 RecycleView 来实现水平方向的刷新和加载更多的效果。我们暂且叫它 PullToReshHorizontalRecycleView。PullToReshHorizontalRecycleView我们在 PullToRefresh 的扩展 这篇文章中介绍过如何利用 Pull
2016-08-09 18:10:49
7806
原创 Linux 档案权限详解
前言chmod 770 test.txt上面的命令的意思是将文档 test.txt 的权限改为 rwxrwx---,而 770代表是什么含义呢。本篇文章就来详细介绍 Linux 下档案的权限。用户角色在介绍档案权限之前先来介绍 Linux 中有哪几种用户角色。owner — 档案拥有者;group — 群组;other — 其他人,除了档案拥有者和同一群组的其他人。文档属性登陆之后使用 ls
2016-08-06 21:46:14
1483
原创 openCV 人脸检测在 Android 中的应用
前言上篇文章介绍了 Android 的人脸检测,这篇文章来介绍 openCV 的人脸检测。由于在 Android 平台上能直接使用 JavaCV,而 JavaCV 包含 openCV。所以,这篇文章就在 JavaCV 的基础上来实现 openCV 的人脸检测。引入 JavaCV下载 JavaCV 需要的包下载地址 需要下载的包:javacv-bin.zip 和 opencv-2.4.3-andro
2016-07-30 19:13:50
2929
原创 Android 人脸检测
前言Google 的人脸检测在 Android level 1 中就有了,其用法和效果也都还可以。本篇文章简单介绍 Android 的人脸检测。FaceDetectorGoogle 的人脸检测主要用的类有 FaceDetector,主要代码如下:public void faceDetector(Bitmap faceBitmap){ Bitmap bitmap = faceBitmap.copy
2016-07-25 19:47:01
913
原创 Android 与 Unity 交互二
前言上篇文章中,笔者介绍了 Android 与 Unity 的交互的方法。以及如何将 Android 工程作为插件导入 Unity。本篇将介绍如何将 Unity 项目作为插件导入 Android 项目中。从而实现 Android 和 Unity 之间的交互。从 Unity 中导出 Android 项目点击 File 选择 Build Setting,出现如下图界面,选中 Android 平台。选中右
2016-07-23 16:19:50
395
原创 Android 与 Unity 交互一
前言前段时间帮 Unity 游戏组的同事接支付功能,用到 Unity 与 Android 的交互。这篇文章就来总结一下。交互方式Android 与 Unity 的交互有两种方式:Android 作为 Unity 的一部分或者把 Unity 作为 Android 的一部分。至于使用哪种方式,就要根据具体情况来决定了。如果你的项目是以 Unity 为主( Unity 的部分需要经常改动,而 Androi
2016-07-17 16:40:57
1649
原创 Text To Speech 总结
前言Android 1.6 加入了文字合成语音的功能,但是 Google 提供的语言库不支持中文。本篇文章总结了几个支持中文的语言库。TextToSpeech在介绍其他语言库之前,先介绍一下 Android 的文字合成语言的 API。因为即使使用其他的语言库,想要完成文字合成语言依然要使用 Android 的 API。以下代码取自 Android 官方 ApiDemos 中的 TextToSpeec
2016-06-27 11:04:15
3947
原创 PullToRefresh 的扩展
前言在前几篇文章中介绍了 PullToRefresh 的用法和源码,这篇文章笔者将介绍如何扩展 PullToRefresh。PullToRefresh 框架为我们提供了常用的刷新控件,比如 PullToRefreshListView 、PullToRefreshGridView。如果我们需要其他的刷新控件时,我们可以在 PullToRefresh 的基础上来实现我们需要的刷新控件。本篇笔者以 Tex
2016-06-27 11:03:26
1031
原创 PullToRefresh 的源码分析
前言上篇文章介绍了 PullToRefresh 的继承关系。本片开始将介绍 PullToRefresh 的源码。由于时间的关系,关于PullToRefresh 的源码笔者也将分成两篇来介绍。本篇文章主要介绍 PullToRefresh 的下拉刷新是如何实现的。在下一篇中,将介绍如何扩展 PullToRefresh,并编写 demo。PullToRefreshBase从上篇文章中我们知道 IPullT
2016-06-27 11:02:17
522
原创 PullToRefresh 的继承关系
前言虽说 PullToRefresh 是一个比较老的框架了,但是也是比较有研究价值的。笔者准备用两篇文章来介绍。第一篇 —- PullToRefresh 的继承关系第二篇 —- PullToRefresh 的源码分析PullToRefresh 继承关系图PullToRefresh 继承关系图说明PullToRefreshBase:实现下拉刷新PullToRefreshAdapterView
2016-06-27 11:01:32
349
原创 使用 PullToRefresh 的总结
前言关于下拉刷新、上拉加载的框架现在有很多,这里奉上别人收集的一些框架(下拉刷新框架收集)。但是笔者一直还在使用 PullToRefresh 。个人觉得 PullToRefresh 使用起来还是比较简洁方便的。关于 PullToRefresh 具体的用法,这里不再赘述,这里主要分享一下笔者在使用时遇到的一个小小的坑。问题描述当一些可滑动的控件滑动到顶端或者底部的时候,继续滑动在魅族或者坚果手机上还会
2016-06-27 11:00:41
839
原创 EventBus 源码分析
前言上篇文章笔者简单介绍了 EventBus 的用法。本篇文章笔者将简单分析 EventBus 的源码。从上篇文章我们可以得知,要使用 EventBus 首先要调用 EventBus 的 register 方法注册(一般在 onCreate 方法中)。然后,定义被 Subscribe 注解的方法(用来接收由 post 方法发送的消息)。最后,调用 unregister 方法解注册(一般在 onDes
2016-06-27 10:59:00
466
原创 EventBus 的用法
前言Demo 地址 关于 EventBus 笔者将分两篇文章进行介绍。EventBus 的用法EventBus 的源码分析什么是 EventBus 及优点简化组件之间的通信减弱事件发送者和接受者之间的耦合使 Activity 、Fragment 和后台线程很好的进行消息传递避免和生命周期之间复杂和易错的依赖关系。使代码更加简洁效率更高轻量级(jar 包小于 50K) 等等Eve
2016-06-27 10:57:21
482
原创 吐槽 Android 权限管理
前言笔者最近在工作中遇到了关于 Android 的权限管理的问题,在搜索资料的时候发现关于 Android 如何获取 Android 系统权限或者 root 权限的资料少之又少,而且千篇一律。我这只小白真真切切的感受到了失望和无助。写下这篇文章主要是为了抛砖引玉。希望有大牛能来抚慰我受伤的心灵。普通权限对于 Android 中普通的权限我们只需要在 AndroidManifest.xml 中的 ma
2016-06-27 10:56:26
330
原创 APK 瘦身总结
前言随着项目的发展,我们的 APK 会越来越大。这就意味着推广的成本会增加,用户在下载的时候会用掉更多的流量。上传应用市场的时候往往也会有大小的限制。如何为 APK 瘦身就成为迫在眉睫的任务。这篇文章总结了为 APK 瘦身的一些经验。APK 的结构apk 的目录结构标准的 APK 的目录中包含以下文件classes.dex – 是 java 源码编译后生成的 java 字节码文件resource
2016-06-27 10:55:19
416
原创 使用 OpenCV 得到图片线稿
前言上篇文章介绍了 OpenCV 的配置方法,本篇介绍一个 OpenCV 的简单用例。使用 OpenCV 得到一张图片的线稿。效果图如下:原图线稿图代码分析#include <opencv2/opencv.hpp> #include <cv.h>#include <highgui.h>int _tmain(int argc, char ** argv){ cvNamedWindow("s
2016-06-27 10:51:57
2577
原创 [Android] Opencv 环境搭建
前言Opencv 是一个广受欢迎的开源计算机视觉库,它提供了很多函数,实现了 很多计算机视觉算法,算法从最基本的滤波到高级的物体检测皆有涵盖。本篇文章主要叙述如何在 Windows 平台搭建 Opencv 的开发环境。准备由于 Opencv 是 C/C++ 编写,所以我们要先安装 Visual Studio ,本人使用的是 Visual Studio 2010。然后去 Opencv 官网 下载 O
2016-04-03 21:57:48
403
原创 [Android] Android 视频播放总结
前言本篇文章主要介绍 Android 原生 VideoView,Google 开源视频播放框架 ExoPlayer,Vitamio 视频播放框架以及 Bilibili 开源视频播放框架 ijkplayer 的使用方法和优缺点。VideoViewVideoView 的使用非常简单,播放视频的步骤:在界面布局文件中定义 VideoView 组件,或在程序中创建 VideoView 组件调用 Vide
2016-04-03 21:55:39
3885
原创 [Android] 从源码分析 Handler 消息机制
前言上篇文章叙述了 Handler 的用法和避免因为不当使用 Handler 引起内存泄露的方法。这篇文章将从源码分析 Handler 消息机制的实现。Looper我们知道要想使用 Handler 就必须在当前线程里初始化 Looper,我们初始化 Looper 的做法是调用 Looper.prepare() 方法。然后调用 Looper.loop() 方法。首先,我先来看 Looper.prepa
2016-04-03 21:54:32
509
原创 [Android] Handler 详解
前言Android 中 Handler 是开发中特别常用的知识。本人将分两篇来叙述 Handler。第一篇———— Handler 的用法第二篇———— 从源码分析 Handler 消息机制的实现Handler 的功能Handler 最常用的功能就是更新 UI。因为 Android 只能在主线程中更新 UI,但是更新 UI 之前往往要先更新数据,这就需要一些 I/O 操作,比如请求网络数据,或
2016-04-03 21:52:39
322
原创 [Android] 解决 View 滑动冲突法则
前言这是 demo 地址上面 demo 用外部拦截法实现了滑动方向一致和不一致的两种冲突。滑动冲突场景场景 1————外部滑动方向和内部滑动方向不一致场景 2————外部滑动方向和内部滑动方向一致场景 3————上面两种情况的嵌套场景 1,主要是 ViewPager 和 Fragment 配合使用组成的页面横向滑动效果,而 Fragment 里又包含了 ListView 竖直滑动的控件。由于
2016-03-05 20:09:40
413
原创 Android 从源码分析 Android 触摸事件分发过程
前言上篇文章我们用 demo 分析了 Android 触摸事件的分发过程,这周我们将尝试从源码的角度分析 Android 触摸事件的分发过程。Activity 对触摸事件的分发当一个触摸事件发生时,最先传递给 Activity,由 Activity 的 dispatchTouchEvent 方法进行事件的分发。public boolean dispatchTouchEvent(MotionEvent
2016-03-03 22:43:08
401
原创 Android 触摸事件分发过程
前言这是demo 链接Android 中 View 的事件传递是一个老生常谈的问题,但也是学习 Android 的重点和难点。本人将分三篇来分享 Android 中的事件传递。通过 demo 分析 Android 事件的传递过程通过源码分析 Android 事件的传递过程运用所学解决 Android 中滑动冲突MotionEventAndroid 中事件的传递其实传递的就是 MotionEv
2016-03-03 22:40:04
374
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人