- 博客(35)
- 资源 (13)
- 收藏
- 关注
转载 JAVA&JNI 数据类型
由于android app主要是以java为主的,然后java的数据类型和jni里面的c/c++的数据类型有有一定差异的,这种差异主要区别在于一个数据类型暂用的位宽可能不一样,但是还好的是,对应关系还是基本上能够吻合的,比如参考下面的表单:java和c/c++ 数组对应,以及数组操作函数:JNI通过JNIEnv提供的操作Java数组的功能。它提供了两个函数:一个是操作java的简单型数组的,另一个...
2018-03-07 14:56:45 265
转载 USB 两种模式
Android通过两种模式,来支持各种USB外围设备和Android USB附件(硬件实现了Android的附件协议):USB附件模式和USB主机模式。在USB附件模式下,外部 USB 硬件充当USB主机。(作为)附件的例子,包括机器人控制器、扩展插座(docking stations)、诊断和音乐设备、电子报亭(kiosks)、读卡器等其他设备。这种模式给予不具备主机功能的Android设备,与...
2018-03-01 17:20:05 14824
转载 Media Data
Android MediaProvider 使用 SQLite 数据库存储图片、视频、音频等多媒体文件的信息,供视频播放器、音乐播放器、图库使用。Media数据库分为internal 和external ,对应的是内部存储和外部存储数据库,两个数据库内容相似,我们分析的是外部存储设备的数据库。 外部存储数据库都是以类似 external-ffffffff.db 的形式命名的, 后面的 8 个 16
2018-01-19 10:42:54 659
转载 程序员应该知道的事情
引用引用某位技术大牛推荐的技术成长方法: 1)我们要经常关注技术网站,如csdn,iteye,infoq等; 2)要努力提高英语水平,学习研究第一手的技术资料; 3)对新技术要保持饥饿和敏感,一旦有新技术要主动的了解和学习; 4)学会对技术进行高层次的总结和理解,在相似的新技术出现时可以类比学习快速上手; 5)善于使用搜索引擎检索技术和问题,因为技术资
2017-08-25 10:42:51 282
转载 Bluetooth study 1
转载 地址:blog.csdn.net/baimy1985/article/details/8892410前段时间在 网上看了一些关于Android蓝牙的文章,发现大部分是基于老版本(4.1以前含4.1)的源码,虽然无碍了解蓝牙的基本原理和工作流程,但对着4.2.2的代码看起来总是有些遗憾。所以针对4.2.2版本代码整理下相关知识,当然蓝牙工作的主干流程是没有变的,上电、加载驱动这些动作少
2016-12-29 17:10:36 394
转载 弄清这些概念很重要
1.什么是"帧",在最早的电影里面,一幅静止的图像被称做一"帧(Frame)",影片里的画面是每一秒钟有24帧,为什么是24帧,这个数字是怎么来的,因为人类眼睛的视觉暂留现象正好符合每秒24帧的标准,所以用多也没有意义还会浪费电影胶片,增加成本。2.什么是"行",在我们用的传统CRT模似电视里面,一个电子束在水平方向的扫描被称之为行,或行扫描。3.什么是"场",在我们用的传
2016-08-24 14:38:17 605
转载 MediaRecorder MPEG4Writer
MPEG4Writer是Android stagefright媒体框架下一个的封装类,我们平常录制视频调用的MediaRecorder接口类其视频录制的底层封装实现就是通过MPEG4Writer完成的。以视频为例,MPEG4Writer是视频录制的最后一环。图1 MediaRecorder调用流程MPEG4Writer遵守 ISO 14496-12标准进行封装,MP4、3gp
2016-08-22 17:04:35 1305
转载 PorterDuff及Xfermode详解
PorterDuff及Xfermode详解 之前已经讲过了除ComposeShader之外Shader的全部子类, 在讲ComposeShader(组合渲染)之前, 由于构造ComposeShader需要 PorterDuffXfermode或者PorterDuff.Mode作为参数,所以在此先详细地了解下这两个类的作用,这对之后的绘图会有很大的帮助: ProterDuff的由来:
2016-08-05 14:12:58 245
原创 关于Java Final 修饰的局部变量,多线程可以访问
局部内部类的对象可以访问同一个方法中被定义为final的局部变量。定义为final后,编译程序的实现方法:将所有的局部内部类对象要访问的final型局部变量,都拷贝成为该内部类对象中的一个数据成员。这样,即使栈中局部变量(含final)已死亡,但由于它是final,其值永不变,因而局部内部类对象在变量死亡后,照样可以访问final型局部变量。局部内部类对象中包含有要访问的final型局
2016-07-05 17:13:05 1736
转载 VIM 太牛了
===============================话不多说,先来看看效果===============================================================使用vim打造IDE, 针对C语言开发者建议使用gvim================================# 安装ruby, c
2016-06-23 16:11:45 8997
转载 基本概念
最小特权原则(POLP,principle of least privilege)是将访问权限限制到最低水平但仍能保证正常运作的做法。应用到人,最小特权原则就是指给人们最低水平的用户权限,但他们仍然能进行他们的工作。这一原则也适用于事物,包括程序和进程。
2016-06-20 17:02:59 287
原创 数学-知识记录
1、向量范数1-范数:,即向量元素绝对值之和,matlab调用函数norm(x, 1) 。2-范数:,Euclid范数(欧几里得范数,常用计算向量长度),即向量元素绝对值的平方和再开方,matlab调用函数norm(x, 2)。∞-范数:,即所有向量元素绝对值中的最大值,matlab调用函数norm(x, inf)。-∞-范数:,即所有向量元素绝对值中的最小值,matlab调用
2016-05-21 17:18:31 559
转载 Android图片编码架构-Bitmap,Skia,libJpeg
一谈到Android上的图片压缩保存,基本都会想到android.graphics.Bitmap这个类,它提供了一个非常方便(事实上也只有这一个)的方法:public boolean compress (Bitmap.CompressFormat format, int quality, OutputStream stream)这个方法可以把当前的bitmap,根据参数提供的压缩格式(
2016-05-10 10:28:17 1157
转载 什么是直方图均衡化
直方图均衡化的作用是图像增强。有两个问题比较难懂,一是为什么要选用累积分布函数,二是为什么使用累积分布函数处理后像素值会均匀分布。第一个问题。均衡化过程中,必须要保证两个条件:①像素无论怎么映射,一定要保证原来的大小关系不变,较亮的区域,依旧是较亮的,较暗依旧暗,只是对比度增大,绝对不能明暗颠倒;②如果是八位图像,那么像素映射函数的值域应在0和255之间的,不能越界。综合以上两个条件,累积
2016-03-16 10:44:14 2037
转载 对腐蚀 和 膨胀 的理解
原理:在特殊领域运算形式——结构元素(Sturcture Element),在每个像素位置上与二值图像对应的区域进行特定的逻辑运算。运算结构是输出图像的相应像素。运算效果取决于结构元素大小内容以及逻辑运算性质。结构元素:膨胀和腐蚀操作的最基本组成部分,用于测试输出图像,通常要比待处理的图像小还很多。二维平面结构元素由一个数值为0或1的矩阵组成。结构元素的原点指定了图像中需要处理的像素范围,结构
2016-03-10 10:03:28 33228 4
原创 对C++ 中Enum & Macro &Const 的理解
1. Macro 是在编译的时候 ,进行简单的替换,宏定义的常量是编译前简单替换掉,而不需要做类型检查.2.Const onst定义的常量在编译时会帮类型检查,编译完之后再做替换.所以编译完之后就看不到const的信息了,转换成对应的值.const定义的信息只是保存在符号表中.如果定义常量const int one = 1;然后在其他地方只是把one作为右值赋值给其他变量那就不存
2016-03-08 11:27:26 1036
原创 矩阵的叉乘必须记录下来
一直以来,我都记不住向量叉乘的结果,每次都要查询。其根本原因在于,我没有去研究过叉乘是如何推导出来的。于是,这次想彻底解决一下。首先要感谢维基百科,它已经把所有问题都描述清楚了。http://en.wikipedia.org/wiki/Cross_product 而下面的文字,只是我的读书笔记,以加深自己的印象。 首先我们知道 ,对于向量u和v, u x v的结果,是得到一个既
2016-03-07 16:49:02 16907
转载 简单理解图像的深度和通道
图像的深度:图片是由一个个像素点构成的,所有不同颜色的像素点构成了一副完整的图像,计算机存储图片是以二进制来进行的。1 bit : 用一位来存储,那么这个像素点的取值范围就是0或者1,那么我们看来这幅图片要么是黑色要么是白色。4 bit : 取值范围为 0 到 2 的4次方8 bit : 来存储像素点的取值范围为 0 到 2 的8次方 以此类推,我们把计算机存储单个像素点所
2016-03-07 14:41:51 739
原创 install opencv 3.1 on ubuntu 14.04+Eclipse
install opencv 3.1 需要的Package GCC 4.4.x 或更高 CMake 2.8.7 或更高 Git GTK+2.x 或更高,包括头(libgtk2.0-dev) pkg-config Python 2.6 或以后,Numpy 1.5或以后,和开发包(python-dev,py
2016-03-07 14:17:05 511
转载 program g++ not found in path
最近在ubuntu·系统中使用eclipse 编写c++ ,一直报 program g++ not found in path 错误,在网上各种找,最终找到解决办法。1首先确认是否安装了gcc 与g++2.安装了以后查看eclipse 的window--》preference--》c/c++--》 build --》 setting --》discovery--》CDT GCC Build
2016-03-07 11:21:16 1497
原创 理解setRetainInstance
图1-5 Activity和Fragment生命周期整合 图1-6 Fragment生命周期10.巧妙使用setRetainInstance()为什么会在这儿花一定的篇幅详细说明setRetainInstance()方
2016-03-06 10:21:28 710
转载 理解startservice和bindservice
一、首先,让我们确认下什么是service? service就是android系统中的服务,它有这么几个特点:它无法与用户直接进行交互、它必须由用户或者其他程序显式的启动、它的优先级比较高,它比处于前台的应用优先级低,但是比后台的其他应用优先级高,这就决定了当系统因为缺少内存而销毁某些没被利用的资源时,它被销毁的概率很小哦。 二、那么,什么时候,我们需要使用servi
2016-03-05 17:26:21 320
转载 单指拖动、双指缩放图片
手势其实是一个比较复杂的东西,首先是因为处理的时机。Android中触摸屏的事件其实只有ACTION_DOWN、ACTION_MOVE和 ACTION_UP这三种,当然我们实现手势的逻辑时,一般会用到GestureDetector,它有许多封装好的事件回调接口,比如onFling、 onLongPress、onScroll等,其实这些事件只是对上面那三个基本时间的包装而已:即三个基本事件按一定的序
2016-02-25 17:25:05 977
转载 Matrix
Matrix ,中文里叫矩阵,高等数学里有介绍,在图像处理方面,主要是用于平面的缩放、平移、旋转等操作。首先介绍一下矩阵运算。加法和减法就不用说了,对应位相加就好。图像处理,主要用到的是乘法 。下面是一个乘法的公式:在 Android 里面, Matrix 由 9 个 float 值构成,是一个 3*3 的矩阵。如下图:解释一下,上面的sinX 和cosX ,表示旋转角度的
2016-02-25 17:24:18 413
转载 Android ImageView
android:scaleType可控制图片的缩放方式,示例代码如下:[html] view plain copy print?ImageView android:id="@+id/img" android:src="@drawable/logo" android:scaleType="centerInside" androi
2016-02-25 17:16:09 279
转载 Java spi机制
最近看到公司的一些框架和之前看到的开源的一些框架的一些服务发现和接入都采用了java的spi机制。所以简单的总结下java spi机制的思想。 我们系统里抽象的各个模块,往往有很多不同的实现方案,比如日志模块的方案,xml解析模块、jdbc模块的方案等。面向的对象的设计里,我们一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了可拔插的原则,
2016-02-24 13:37:56 261
转载 Java中的StringTokenizer类的使用方法
StringTokenizer是字符串分隔解析类型,属于:java.util包。1.StringTokenizer的构造函数StringTokenizer(String str):构造一个用来解析str的StringTokenizer对象。java默认的分隔符是“空格”、“制表符(‘\t’)”、“换行符(‘\n’)”、“回车符(‘\r’)”。StringTokenizer(String
2016-02-23 16:32:05 312
转载 白话计算机图形学初步-由一个小问题引发的故事
一、为何写本文 今天在学习android时遇到的一个问题:android程序从网络得到一张图片,显示在程序的imageview中,期间调用了bitmap把字节数组转化成位图文件,才能显示,自己对此很困惑:为何我们得到字节数组之后不能直接显示呢,而是要通过bitmap才可以显示?因此查了很多资料,有了一个初步的概念,另本文只做感性的理解,有一些地方表述的可能有问题,望读者见谅。二、引入
2016-02-16 16:17:29 470
转载 如何让AlertDialog 在点击确定或者取消时不消失
众所周知,AlertDialog类用于显示对话框。关于AlertDialog的基本用法在这里就不详细介绍了,网上有很多,读者可以自己搜索。那么本文要介绍的是如何随心所欲地控制AlertDialog。 现在我们来看看第一个需求:如果某个应用需要弹出一个对话框。当单击“确定“按钮时完成某些工作,如果这些工作失败,对话框不能关闭。而当成功完成工作后,则关闭对话框。当然,无论何程度情况,单击“取
2015-11-15 14:09:08 1665
转载 Streaming Media
原文来自: http://www.cnblogs.com/robertfang/articles/1222598.html 1、概述 流媒体技术是一种专门用于网络多媒体信息传播和处理的新技术,该技术能够在网络上实现传播和播放同时进行的实时工作模式,相对于其他的一些音、视频网络传输和处理技术,流媒体比较成熟和使用,目前已经成为网上音、视频(特别是实时音视频)传输的主要解决方
2015-09-22 19:47:32 391
转载 go中的main函数和init函数
Go里面有两个保留的函数:init函数(能够应用于所有的package)和main函数(只能应用于package main)。这两个函数在定义时不能有任何的参数和返回值。虽然一个package里面可以写任意多个init函数,但这无论是对于可读性还是以后的可维护性来说,我们都强烈建议用户在一个package中每个文件只写一个init函数。 Go程序会自动调用init()和ma
2015-09-13 13:51:45 539
转载 Git Ignore file
1、 环境Windows XP SP3 + TortoiseGit + msysGit 2、 ignore files的三种方法 以下涉及的ignore文件均为如下格式:# 以'#'开始的行,被视为注释.
2015-07-09 13:50:03 279
转载 Thunderbird Mail 支持 Microsoft Exchange
之前一直试网上的方法让Thunderbird Mail支持 Microsoft Exchange,但是都没有成功,一个偶然机会发现 Thunderbird Mail本身有插件(ExQuilla)支持Microsoft Exchange.所以就试着装了一下,配置后,果然能用,哈哈....欣喜之余把安装的步骤记录下来.以作记录,留作自己参考,也方便受次困扰的兄弟们参考.一 安装ExQuilla
2015-06-24 17:53:16 1659
转载 Android Studio如何发布APK
(1)Android Studio菜单Build->Generate Signed APK (2)弹出窗口 (3)创建密钥库及密钥,创建后会自动选择刚创建的密钥库和密钥(已拥有密钥库跳过) 点击“Create new...”按钮创建密钥库 Key store path:密钥库文件的地址
2015-06-24 15:20:46 242
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人