- 博客(36)
- 资源 (1)
- 收藏
- 关注
原创 macbook 最常用快捷键
复制粘贴:command+c。 command+v打开Spotlight搜索:command+空格切换输入法:control+空格打开文件系统根目录:打开Finder ->同时按下shift+command+g ->输入/
2017-07-13 19:15:42
478
原创 opengl最好的教程网站
http://www.opengl-tutorial.org/miscellaneous/clicking-on-objects/picking-with-an-opengl-hack/
2017-07-13 08:32:19
721
原创 vs2013 编译出现This function or variable may be unsafe错误解决方法
在项目右键->属性->属性配置->C/C++->预处理器->预处理器定义 , 然后编辑添加命令_CRT_SECURE_NO_WARNINGS
2017-07-01 09:59:49
353
原创 android studio terminal jni 生成头文件命令
切换到java目录下。javah -d ../cpp(生成头文件的目录) com.example.yeguangrong.opengl.detect.FaceDetectImpl(目标文件)
2017-06-27 14:21:41
589
转载 C++11 智能指针 shared_ptr
C++智能指针 shared_ptr shared_ptr 是一个标准的共享所有权的智能指针, 允许多个指针指向同一个对象. 定义在 memory 文件中(非memory.h), 命名空间为 std. shared_ptr 是为了解决 auto_ptr 在对象所有权上的局限性(auto_ptr 是独占的), 在使用引用计数的机制上提供了可以共享所有权的智能指针, 当然这需要额外
2017-06-22 20:06:34
618
原创 Ubuntu常用命令大全
一、文件/文件夹管理 ls 列出当前目录文件(不包括隐含文件) ls -a 列出当前目录文件(包括隐含文件) ls -l 列出当前目录下文件的详细信息 cd .. 回当前目录的上一级目录 cd - 回上一次所在的目录 cd ~ 或 cd 回当前用户的宿主目录 mkdir 目录名 创建一个目录 rmdir 空目录名 删除一个空目录 rm 文件名 文件名
2017-06-21 09:49:34
273
原创 ubuntu查看shell
查看当前发行版可以使用的shell yeguangrong@yeguangrong-Inspiron-3847:~$ cat /etc/shells 输出如下 /bin/sh /bin/dash /bin/bash /bin/rbash查看当前使用的shell yeguangrong@yeguangrong-Inspiron-3847:~echo echo SHELL 输出 : /b
2017-06-19 11:08:16
1261
原创 ubuntu 查看可用的shell和当前使用的shell
查看当前发行版可以使用的shellyeguangrong@yeguangrong-Inspiron-3847:~$ cat /etc/shells输出如下# /etc/shells: valid login shells/bin/sh/bin/dash/bin/bash/bin/rbash查看当前使用的shellyeguangrong@yegua
2017-06-19 11:03:23
15319
原创 mac os x下配置Android Studio本地gradle
新建Android studio的项目,打开项目的gradle.wrapper包里面的gradle-wrapper.properties文件,会看到如下内容 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/di
2017-06-18 11:24:30
12383
原创 c++ inline 内联函数作用
内联函数的作用主要就是使用在一些短小而使用非常频繁的函数中,为了减少函数调用的开销,为了避免使用宏(在c++中,宏是不建议使用的)。比如内联函数inline int func(int x){return x*x;} 在调用的时候cout<<func(x)<<endl,在编译时将被展开为:cout<<(x*x)<<endl;内联函数在表现形式上与宏很类似。但是内联函数和宏之间的区别很明显。宏是在预
2017-06-15 15:06:58
623
原创 Android openGL ES2.0 Matrix.frustumM和Matrix.setLookAtM解析
Android使用OpenGL ES2.0绘制3D图像或者加载3D模型时,为了达到立体效果往往需要设置视见转换矩阵和投影转换矩阵即 Matrix.setLookAtM(mVMatrix, 0, cx, cy, cz, tx, ty, tz, upx, upy, upz) 和 Matrix.frustumM(mProjMatrix, 0, left, right, bottom, top, near
2017-01-11 12:00:00
8139
1
原创 Android SurfaceView中的Surface,openGL es中 EGLDisplay,EGLConfig,EGLContext,EGLSurface
Android 使用openGL ES必须创建的几个关键类:(1) EGLDisplay的创建:EGL14.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY)(EGL10也可以)。(2) EGLConfig的创建:可以实现EGLConfigChooser接口,需要用到EGLDisplay参数(3) EGLContext的创建:调用egl接口 eglCrea
2016-11-23 20:34:53
7525
原创 Java 9行代码搞定直接插入排序
/** * 直接插入排序 * @param src * @return */public static int[] straightInsertionSort(int [] src){ for (int i = 1; ilength; i++){//外层循环,需要插的次数 for (int j = i; j >= 1; j--){//内循环往前插
2016-10-26 15:32:57
375
原创 源码分析Android消息传递机制
基础知识:理解和使用Handler需要用到四个类:Handler,Looper,Message,MessageQueue。这四个类是如何交互的呢?大概思路:(1)发送消息: handler发送message消息,looper将消息放到messageQueue;(2)处理消息:Looper在创建后会开启一个死循环,这个死循坏会读取messageQueue里面的message,一旦有消息,机会马上
2016-09-18 16:50:45
394
原创 Android handler导致的内存泄漏
Handler的生命周期与Activity不一致 由于Handler属于TLS(Thread Local Storage)变量,生命周期和Activity是不一致的。 当Android应用启动的时候,会先创建一个UI主线程的Looper对象,Looper实现了一个简单的消息队列,一个一个的处理里面的Message对象。主线程Looper对象在整个应用生命周期中存在。 当在主线程中初始化
2016-09-12 10:42:07
382
原创 android apk异常卸载后无法安装的解决办法
手机先获取root权限,然后cmd进入命令行,输入adb shell,回车;cd data/data,回车进入到该文件夹目录;rm -rf 包名 回车
2016-03-09 10:20:29
992
原创 java最常用的设计模式之一外观模式
外观模式定义:提供了一个统一的接口,用来访问子系统中的很多接口。外观定义了一个高层接口,让子系统更容易被客户端使用。外观模式基本上可以说是Java设计模式中最简单的一种设计模式了,该模式通俗简单来说就是当我们在客户端需要调用一个子系统(其实就是一个比较大的功能模块啦,或一个外部的SDK),客户端一般的做法可以是调用那个子系统中所有需要实现这个功能的方法,但是这样做会使整个系统的耦合性大大提高,
2016-02-01 17:24:07
720
原创 关于Java的输入输出流(InputString,OutputString)
InputStream:我们在读取网路流中数据的时候必须先得到InputStream,例如Java的URLConnection和Socket中都有getInputStream()这个方法来获取网路数据的输入流。得到InputStream后,就可以读取流中的数据,怎么读取呢?请看下文,有以下几种类型的数据(1)如果流中的数据只是字符串,那就很简单,看下图中的代码,BufferedRead
2016-01-28 12:16:51
4390
原创 Java设计模式之模板方法模式在android中的实例
我们在开发android应用时,模板方法模式在什么情况下会使用呢?如果仅仅是查看android的框架层代码,会发现非常多的地方使用到了模板方法模式,例如public void layout(int l, int t, int r, int b)。但是当我们写功能模块时也会遇到需要使用模板方法的,最常见的情况就是我们的应用中会有很多地方使用到网络请求,每个请求都会有一定的共同的操作和不同操作,这
2016-01-05 13:55:23
439
原创 android内存优化
android对内优化的方法有很多,下面简单介绍几种(1)用SparseArray代替HashMapSparseArray是Android框架独有的类,在标准的JDK中不存在这个类。而HashMap是JDK中的类,SparseArray要比 HashMap 节省内存,某些情况下比HashMap性能更好,按照官方问答的解释,主要是因为SparseArray不需要对key和value进行aut
2015-12-28 16:36:01
350
原创 Java反射机制
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的以及动态调用对象的方法的功能称为java语言的反射机制
2015-12-28 15:52:38
327
原创 最常用的Java设计之一 观察者模式 在android中的实例 ListView Adapter机制
我们都知道ListView都必须有设置适配器的这个步骤,即setAdapter(ListAdapter adapter),而在这里andriod framework使用到了Java观察者模式。在你看下面的解析之前,读者必须要先对观察者模式有一定了解,因为下面的解析都是观察者的应用实例,没有对观察者的概念和简单实例进行讲解 mAdapter = adapter; mDataSetO
2015-12-26 14:17:19
555
转载 LinearLayout中的属性baselineAligned的使用
Android线性布局中的属性主要的就是控制浮动方向的orientation,其他的就是辅助浮动显示的,其中有一个属性控制基线,也就是baselineAligned,让我有点迷惑,下边通过例子讲解下这个属性的使用。1.首先这个基线主要是对可以显示文字的View,如TextView,Button等控件的2.这个baseline指的是这个UI控件的baseline--文字距UI控件顶部
2015-12-24 12:27:11
402
原创 android 实现流式布局FlowLayout
import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.view.View;import android.view.ViewGroup;/** * @author YeGuangRong * */publi
2015-12-14 18:58:48
406
转载 Java 引用
java对象的强引用,软引用,弱引用和虚引用众所周知,java中是JVM负责内存的分配和回收,这是它的优点(使用方便,程序不用再像使用c那样操心内存),但同时也是它的缺点(不够灵活)。为了解决内存操作不灵活这个问题,可以采用软引用等方法。 众所周知,java中是JVM负责内存的分配和回收,这是它的优点(使用方便,程序不用再像使用c那样操心内存),但同时也
2015-12-08 10:55:33
406
转载 android surport
google提供了Android Support Library package 系列的包来保证来高版本sdk开发的向下兼容性,即我们用4.x开发时,在1.6等版本上,可以使用高版本的有些特性(即低版本的手机或者模拟器能够使用在高版本下开发的应用中的特性),如fragement,ViewPager等,下面,简单说明下这几个版本间的区别:Android Support v4:这个包是为了照顾
2015-12-08 10:11:46
463
原创 编译ffmpeg
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := ffmpeg include $(LOCAL_PATH)/config.mak LOCAL_CFLAGS := -DHAVE_AV_CONFIG_H -std=c99 AVUTIL_C_
2015-11-20 15:51:26
486
原创 做一个下拉刷新必须需要掌握的android知识点
下拉刷新,随便到csdn服务器,gitbub上去找,去下载,有一大堆.现在我总结了一下要真正做一个下拉刷新的效果需要熟悉的android知识点,后面会持续更新。第一点:android的事件分发(DistpatchTouchEvent),事件分发里面必须掌握(1)onTouchEvent(MotionEvent event);(2)onInterceptTouchEvent(Motion
2015-11-16 11:25:43
482
原创 非常实用的android动态注册广播并发送以及接收实例
广播是android四大组件之一,很多情况下数据的传递是用过Intent发送, 跳到另外一个Activity就可以接收数据然后更新UI了,但是如果不是跳到另外一个Activity的情况下数据是怎么传递的呢?就需要使用BroadcastReceiver下面我使用动态注册的方式来注册广播传递数据。先写一个广播接收器类需要继承BroadcastReceiverimport andr
2015-09-18 11:17:10
9215
原创 Java实现统计一篇文章中每个单词出现的次数
使用Java正则表达式 和HashMap(哈希表)统计一篇文章中的每个单词出现的次数(去除标点符号和空格)import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.util.HashMap;import java.util.Iterator;impo
2015-09-18 10:35:40
4836
原创 用Java实现归并排序
熟悉数据结构的同学都知道,归并排序是非常重要也是非常实用的一种排序方式,算法很稳定 ,时间复杂度保持在nLogn(底是2)。下面本人实用Java来实现这个算法,public class MergeSort { //每一次的归并操作private void merge(int[] a, int[] b, int l, int m, int h) {int i,
2015-09-18 09:47:59
460
原创 android Java 面向对象编程之 interface
interface 是Java实现多态的一种方式(其他的还有继承,重写等等),Java不允许多继承(一个类继承多个类),但是可以实现多个接口。 在项目开发中我们一般什么情况下才会用到interface呢?设计模式中有种比较常用的设计模式,叫做构造者模式,通常情况下我们实现的功能只需要在一个类中的方法就可以直接实现,但是我们不可能把所有的方法都放到同一个类中,我们需要把不同的实现功能放在不
2015-09-18 09:00:09
467
原创 android关于Handler更新UI的用法
Handler 在android开发的Activity组件中会经常经常用到,那Handler有什么用呢?Handler在什么样的情况下会用到呢? 现在我来说一下比较常用的一种情况。一般Activity 一开始会加载主线程,如果页面上的数据是静态的,也不用怎么改变和交互,这种情况下完全用不上Handler。但是一般的app都离不开网络数据的动态加载(加载数据后需要更新UI),或者有一些数
2015-09-17 21:42:35
718
原创 替换PopUpWindow(解决焦点获取问题)实现顶部筛选菜单(顶部不变,底部阴暗)
很多人写顶部筛选菜单或弹窗都会用到PopUpWindow,但是PopUpWindow也不是万能的,现在商业App的一些界面功能实现使用PopUpWindow无法达到需要的效果(焦点问题,顶部明亮,底部阴暗问题)因此本人在此写了一个demo可以实现顶部弹出筛选布局(不使用PopUpWindow)核心代码如下:package com.example.james;import
2015-09-10 13:35:28
1571
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人