自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 问答 (1)
  • 收藏
  • 关注

原创 leetcode-17

LeetCode第17题电话号码的字母组合class Solution { static Map<String, String> map; static { map = new HashMap<String, String>(); map.put("0", ""); map.put("1", ""...

2019-03-28 20:30:25 162 1

原创 Java 垃圾收集算法

Java 垃圾收集机制1.判断一个java对象需要被回收可达性分析如果一个对象和gc root节点之间没有任何引用链,那么就判断这个对象不可达2.垃圾收集算法2.1 标记-清除算法在一块内存区域里面,将所有标记为可回收状态的对象进行回收并释放所占用的内存区域。就叫标记清除算法。标记清除算法的缺点是如果回收的内存区域都是不连续的区域的话,可能导致再为一个大对象进行分配内存时找不到合适的...

2019-03-18 23:41:49 124

原创 maven在settings.xml中存储加密密码

maven配置server时对password进行加密1.需求因为公司的编译服务器部署在了阿里云上,需要在编译完成后上传编译后的aar文件到公司maven私服上,普通的maven部署方式是把maven私服的账号密码以明文的方式配置在settings.xml文件中&amp;lt;server&amp;gt; &amp;lt;id&amp;gt;deploymentRepo&amp;lt;/id&amp;gt; ...

2018-07-11 19:43:26 8091 1

原创 aar引用不到第三方的依赖

Gradle 打包的AAR无法引用内部的依赖我有一个库内部依赖了HttpClient、Gson等库,我把我的库上传到了公司的Maven私服上,但是使用的时候没有获取到HttpClient、Gson这些库。 百度上搜了很多的方法,很多人说把AAR上传到maven仓库就可以解决问题,但是我上传到了自己本地的maven仓库还是找不到依赖。 最后在stackoverflow上面找到了一个解决方法: 将

2018-01-02 17:22:49 6340 5

翻译 OpenGL 中的Texture(纹理)

OpenGL 中的Texture(纹理)翻译自 Android课程3:基础纹理 英语好的小伙伴可以直接去这个网站学习OpenGL ES2纹理介绍纹理映射技术是构建一个真实3D世界最重要的方式。没有纹理映射的话,所以的东西都是光滑的渐变,看起来像人造的,像是90年代的控制台游戏首先大量使用了纹理技术的游戏,比如Doom和Duke Nukem 3D,通过添加的视觉影响能极大的增强了游戏的真实性。纹理坐标

2017-07-12 10:49:46 1811

原创 OpenGL ES中的坐标变换

OpenGL ES中的坐标变换OpenGL ES中的坐标系世界坐标系纹理坐标系物体坐标系眼坐标系或相机坐标系裁剪坐标系屏幕坐标系世界坐标系世界坐标系是OpenGL中描绘三位空间的坐标系纹理坐标系一种假象的坐标系 可以叫UV坐标系 一个纹理的纹理坐标左上角为(0,0),右下为(1,1),坐标用浮点数表示 物体坐标系相对于单个物体的坐标系相机坐标系相机坐标系是以相机为原地,相机观察方

2017-07-10 21:20:47 374

翻译 OpenGL中的光照

Android OpenGLES2.0中的光照翻译自Android课程二:环境光和漫反射光1.什么是光?世界没有光就会什么也看不到,我们将无法感知这个世界活着物体。在真实的世界里,光是由无数的光子聚合在一起形成的,它从一个光源出发,经过无数时间,最后传递到了我们的眼睛里我们应该如何用计算机图像模拟光呢,现在有2种热门技术可以实现:光线跟踪和栅格化。光线跟踪通过数学计算跟踪真实的光线,能给出十分准确和

2017-07-10 20:53:21 510

转载 使用动态代理拦截Android Activity的启动

使用动态代理拦截Android Activity的启动1.动态代理拦截的要求要代理的类要实现接口要能获取目标类的对象2.对startActivity进行拦截activity的启动过程通过分析源码知道了实际内部调用了ActivityManagerNative.getDefault() .startActivity这个方法,而getDefault这个方法内部是st

2017-07-10 10:10:08 1234

原创 Matrix

Learn the Matrix Class in Android参考:GcsSloop的博客1.Matrix是Android中Graphics包下的一个类,主要用来对图像进行平移、缩放、旋转、透视、错切等操作。Matrix对象实际是一个3x3的矩阵。每个值都有不同的用处:mScalaX mSkewX mTransfXmSkewY mScalaY mTransfYmPer

2017-06-25 21:46:23 259

原创 okhttp中Interceptor的使用

在Retrofit2中使用okhttp的Interceptor来插入Header自定义参数OkHttpClient.Builder httpClient = new OkHttpClient.Builder(); httpClient.addInterceptor(new Interceptor() { @Override public

2017-06-25 21:45:19 552

原创 Android使用toolbar设置了fitSystemWindows = “true”的时候当edittext弹出了软键盘时toolbar被拉伸的问题

Android使用toolbar设置了fitSystemWindows = “true”的时候当edittext弹出了软键盘时toolbar被拉伸的问题在manifest下给问题activity添加一个属性问题android:windowSoftInputMode = “adjustPan”

2017-06-25 21:44:25 2368 2

转载 python中的协程(coroutine)

python中的协程(coroutine)1.协程与子例程(subcoroutine)的比较因为相对于子例程,协程可以有多个入口和出口点,可以用协程来实现任何的子例程。事实上,正如Knuth所说:“子例程是协程的特例。”每当子例程被调用时,执行从被调用子例程的起始处开始;然而,接下来的每次协程被调用时,从协程返回(或yield)的位置接着执行。因为子例程只返回一次,要返回多个值就要通过集合的形式。这

2017-06-16 13:18:17 606

原创 Shell Sort

Shell Sort1.介绍希尔排序是插入排序的一种,它的步骤如下: 1.它首先取一个Gap,将待排列的序列中每间隔Gap的项分配到一组。 2.对这些分组内的项进行单独的直接插入排序。 3.当每个组内的排序完成后,再将整歌序列按另一个更小的Gap来进行分组。 4.重复2、3,直到gap的值变为1,对整个序列进行一次直接插入排序。 2.Gap的选值gap的选值可以只用最简单的,每次都

2017-06-11 15:25:18 186

原创 JNI学习3(踩坑)

JNI学习(三)记录一下今天学习jni踩的一些坑,还有在踩坑中学到的东西 1.C/C++层如何返回对象java如果要获得C/C++层返回的值,只需要在c/c++层对应的实现方法中返回要返回给java层的值即可,例如: static jobject getobject(JINEnv *env,jobject obj) jobject obj = obj; return obj;

2016-11-01 15:56:01 382

原创 JNI学习2

JNI学习记录使用JNI_OnLoad()来初始化底层环境,并映射java层native方法1.方法、结构体介绍1>jint JNI_OnLoad(JavaVM* vm, void* reserved); 该方法会在Java层调用System.LoadLibrary("")时被第一个调用。因此可以在这里对底层代码进行初始化,还可以加载c层代码到Vm中; 与之对应的还有一个方法:

2016-10-31 17:32:40 190

原创 view_的滑动

View 的滑动1.使用Scroller Scroller mScroller=new Scroller(context); public void smoothScrollTo(int destX, int destY) { Log.w(TAG,"before smoothScroll-----------scrollX="+getScrollX());

2016-09-11 00:14:57 182

原创 自定义viewgroup

自定义ViewGroup1.主要用到的方法dispatchDraw() View组件在绘制时会调用onDraw()方法,onDraw完后就会调用dispatchDraw(),dispatchDraw()主要是分发绘制事件给子View,一般自定义View不用重写dispatchDraw方法。 ViewGroup组件在绘制时,若没有指定background属性,则不需要重写onDraw方法,而只

2016-09-06 20:21:23 225

原创 排序算法学习之快速排序算法

排序算法学习之快速排序算法1. 快速排序算法的原理快速排序算法的原理是选取一个值作为标志,将一个数组分为2部分,左边部分的数全部都比标志值小,右边部分都比标志值大,然后分别对左边数组和又边数组进行递归,直到排序完成。下面是进行一次数组处理的过程:对以下的数组进行排序: [key] i

2016-04-01 19:17:39 290

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除