Thuantanon的博客

迷茫的本质,不在远方,在于当下。
私信 关注
Thuantanon
码龄6年

路虽远,行则将至;事虽难,做则必成。

  • 67,801
    被访问量
  • 14
    原创文章
  • 157,479
    作者排名
  • 6
    粉丝数量
  • 于 2015-06-09 加入CSDN
获得成就
  • 获得36次点赞
  • 内容获得24次评论
  • 获得24次收藏
荣誉勋章
兴趣领域
  • #Android
    #Android Studio#性能优化#Java#数据结构#gradle
TA的专栏
  • 音视频技术
  • Android
    6篇
  • Java
    1篇
  • C/C++
    5篇
  • 算法与数据结构
    2篇
  • 操作系统
  • 心情和感悟
    1篇
  • Gradle
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

SharedPreferences源码分析

今天偶然看见一篇讲解SharedPreferences(以下简称SP)原理的文章,于是怀着前人种树后人乘凉的心情进去看了,发现写得不是很清楚,很多细节一笔带过,于是为了巩固一下基础就去百度了一下,发现百度上也没有让自己满意的文章。虽然SP说很简单,但是还是决定看看源码记录一下分析结果。此处分析的SDK版本为android-27。1.SP的使用我们都知道,SP是以XML文件方式存储的,我们先来看...
原创
261阅读
0评论
0点赞
发布博客于 3 年前

国庆,又快年底了。

很久没写博客了,自从4月份换工作后就一直比较浮躁,什么都想去学,一会儿学iOS,一会儿写C++搞游戏,一会又去玩前端,明明知道这样很不好,可是就是没有静下心来,估计这大半年时间是没有什么意义的。现在回过头来,才发现Android的知识好多都还没有掌握好,还有很多东西需要深入学习,View系统、Binder机制、AMS、WMS等等,现在的打算是静下心来好好读源码吧,这是一个比较漫长又枯燥的事情,希...
原创
104阅读
0评论
0点赞
发布博客于 3 年前

金山云直播Demo

金山云直播demo代码。包含直播推流包含直播推流包含直播推流包含直播推流
zip
发布资源于 3 年前

Java中Object的finalize()方法

finalize()是什么?finalize()方法是Java中Object类的一个空实现方法,我们都知道,Java中所有的类都是继承自Object,那么就是说,所有的类都有这个方法。我们先来看看该方法/** * Called by the garbage collector on an object when garbage collection * dete
原创
6547阅读
0评论
5点赞
发布博客于 3 年前

一个简单的手势密码控件

GesturePasswordView最近项目需要做手势密码,于是呢顺手写了个,实现没有什么难度也没什么技术含量,只是贴出来以后不必重复造轮子,顺便也练习下写博客。项目地址https://github.com/Thuantanon/GesturePasswordView。使用方式1、工程gradle文件:allprojects { repositories { ... maven { u...
原创
946阅读
0评论
0点赞
发布博客于 3 年前

Android的Activity手指按下时的回调

我们都知道,Android事件分发是从Activity开始的,那么,Activity就能监听到每一个触摸事件。今天在看源码时发现了这个方法:/** * Called to process touch screen events. You can override this to * intercept all touch screen events before they
原创
335阅读
0评论
0点赞
发布博客于 3 年前

error LNK2005:"XXX已经在 XXX.obj 中定义

今天第一次遇到多文件包含的问题,一般来说C++开发都是声明放在头文件里,实现放在源文件里,然后使用时包含头文件,头文件为了避免被重复编译,一般来说要加个杂注“#pragma once ”,或者直接用“#ifndef XXX ....#endif”来处理。好吧,这些我都知道,偏偏各种办法都用遍了,extern也加了,就是一直给我报下面那个错:折腾了半天,终于让我给折腾好了。
原创
4978阅读
0评论
2点赞
发布博客于 3 年前

C++两个平面矩形的相交判断

最近开发小游戏需要一个简单的碰撞检测,因为用的是自定义的Rect类,虽然这个判断方法很简单,但是百度看了很多人的写法代码量都相当的大。当然搜到的结果都不是我想要的,于是只有自己写啦。两个矩形(不考虑旋转)相交大概就那么几种情况,如下图:网上的算法要么就是判断顶点是否被包含,判断线段是否相交等等,这样做的不好的地方是要判断很多种情况。经过简单的分析我的方法如下图所示:
原创
4627阅读
3评论
0点赞
发布博客于 3 年前

使用SDL2_mixer遇到error LNK2019: 无法解析的外部符号

最近在学习C++和SDL,前不久写了个俄罗斯方块的小Demo,但是是没有声音的,接下来准备写一个消灭星星的小Demo,希望,可以加入声效,于是今晚下载了SDL处理音频的库http://www.libsdl.org/projects/SDL_mixer/,然后新建Win32控制台应用程序...(此处省略10字)头文件全部正确导入:库文件全部正确导入:
原创
421阅读
0评论
0点赞
发布博客于 3 年前

SDL俄罗斯方块

整天写一些Android的业务逻辑太心烦了,换个语言找点新鲜感。最近在学习C++,为了避免写黑框框太枯燥坚持不下去,顺便学习了下SDL,做了一个俄罗斯方块小Demo。我的C++也就是停留在大学时Hello world的 代码已上传Github,地址https://github.com/Thuantanon/Tetrics
原创
849阅读
0评论
3点赞
发布博客于 3 年前

对大学四年的总结

去年,也就是2017,我顺利从一个普通二本的计算机学院毕业,这是一篇迟来的总结。
原创
5239阅读
6评论
7点赞
发布博客于 3 年前

读取访问权限冲突。0xCDCDCD

typedef struct List { List *next; // 表的下标 int i; // 总和结果 int sum;}List;已经一年多没有用C++了,最近厌倦了写一些垃圾App,想学一下游戏开发,于是开始复习下C。今天在复习数据结构的链表部分时,出现了这样的一个错误:折腾了半天,终于找到了原因:
原创
23709阅读
11评论
13点赞
发布博客于 4 年前

Android使用CursorLoader加载手机联系人

1、Loader简介Loader是Android3.0(API版本11)中引入的一个抽象类,它主要是封装用来进行异步加载数据。Loader的直接子类是AsyncTaskLoader,也就是AsyncTask和Loader的一个封装类,关于AsyncTask这里就不举例了,总之就是异步加载数据,实际上和Thread+Hander+Loader都一样的效果。而CursorLoader是AsyncT
原创
412阅读
2评论
1点赞
发布博客于 4 年前

Navicat连接数据库Can't get hostname for your address 解决方法

我只是把自己遇到的问题分享出来,希望能解决大家的问题,特别是新手上路,很容易就因为一两个困难打击了学习的信心,编程是个耐心活儿,加油吧。
原创
2179阅读
0评论
1点赞
发布博客于 4 年前

Android动态权限判断以及动态权限申请

首先查看权限是否授予:官网代码// Assume thisActivity is the current activityint permissionCheck = ContextCompat.checkSelfPermission(thisActivity,int permissionCheck = ContextCompat.checkSelfPermission(this...
原创
16615阅读
2评论
2点赞
发布博客于 5 年前

java网络版五子棋

这是一个用java语言编写的网络版五子棋,代码风骚。
rar
发布资源于 6 年前

C语言版贪吃蛇

用C语言写的贪吃蛇,界面不美观,但是初学者可以帮助你。
rar
发布资源于 6 年前