RickyXE
码龄15年
关注
提问 私信
  • 博客:456,561
    456,561
    总访问量
  • 62
    原创
  • 1,211,518
    排名
  • 44
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2009-09-12
博客简介:

RickyXE

博客描述:
宁静致远
查看详细资料
个人成就
  • 获得145次点赞
  • 内容获得51次评论
  • 获得228次收藏
  • 代码片获得119次分享
创作历程
  • 2篇
    2020年
  • 2篇
    2019年
  • 2篇
    2018年
  • 8篇
    2017年
  • 38篇
    2016年
  • 10篇
    2015年
成就勋章
TA的专栏
  • Android
    43篇
  • 编程基础
    18篇
  • java
    14篇
  • 工具配置
    12篇
  • shell
    2篇
  • linux
    1篇
  • 数学
    1篇
  • docker
    1篇
  • 算法
    4篇
  • iOS
  • 测试驱动开发
    3篇
  • javascript
    2篇
  • kotlin
    2篇
  • Node.js
    1篇
兴趣领域 设置
  • 前端
    javascriptvue.jses6webpack
  • 后端
    node.js
  • 移动开发
    kotlinflutter
  • 人工智能
    opencv计算机视觉机器学习神经网络自然语言处理nlp
  • 微软技术
    typescript
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

351人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

JNI学习:在Java中保存Native对象引用

在学习Android Framework源码时,发现部分类中声明了这个变量:private int mPtr; // used by native code那么native层是怎么使用这个变量的呢?以Framework中的MessageQueue为例,它的Native模块源码为/frameworks/base/core/jni/android_os_MessageQueue.cpp查看其中的代码,可以发现这几个调用:// Java 层的MessageQueue构造函数中,会调用Native中的这
原创
发布博客 2020.05.29 ·
1308 阅读 ·
2 点赞 ·
0 评论 ·
4 收藏

JNI入门教程:最小环境HelloWorld实战

JNI是Android应用开发中不太常涉及的技术,但在Framework层中却被广泛使用。作为一名Android应用开发人员,学习JNI知识,对理解整个系统原理还是有很大帮助的。学习JNI有很多途径:可以直接阅读Framework源码。这种方案不太好上手验证,因为Framework代码要配置的编译环境还是比较复杂的,而且编译后没法直接运行测试,需要Root系统其次也可以下载安装NDK,直接在Android Studio里开发项目。这种方式也有比较多的环境配置工作,并且操作起来比较麻烦。因此这篇文
原创
发布博客 2020.05.26 ·
522 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Android中使用Kotlin协程代替RxJava封装网络请求

现在的Android项目普遍使用Retrofit+RxJava的组合实现网络接口请求与数据的展现。这一功能通过Kotlin语言的协程功能也可以很方便的实现。相比较而言,RxJava功能过于强大,如果仅用于封装网络请求,有些杀鸡用牛刀的感觉。使用Kotlin的协程实现这个需求代码更精简,逻辑也更清晰一些。以下是一个完整的例子。使用Retrofit结合Kotlin协程,实现网络请求。点击Acti...
原创
发布博客 2019.06.10 ·
9614 阅读 ·
2 点赞 ·
3 评论 ·
9 收藏

在Idea Community版中远程调试Tomcat Web工程

最近将开发的项目从Eclipse迁移到了IDEA社区版,虽然写代码爽快不少,但还是缺少一些Eclipse中的常用功能。因此考虑将两者结合起来使用:通过IDEA开发项目代码利用Eclipse中的Server插件部署Tomcat,开启远程调试通过IDEA连接调试端口,进行远程调试网上大部分有关Tomcat远程调试的文章,都是修改Tomcat启动文件。这个改动在Eclipse中也可以很方便的...
原创
发布博客 2019.05.30 ·
1619 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

使用Node.js+Express搭建App开发调试Server

在开发手机端App时,通常会出现移动端新页面开发的差不多了,后台接口还没Ready,导致前后端联调浪费了大量时间。 联调过程中又往往涉及到测试服务的切换、抓包验证以及测试异常数据等测试。进而涉及到App重新打包,配置Charles等抓包工具,后台改数据等等工作,非常麻烦。今天就使用Node.js实现一个用来调试的server,简化这些调试工作。这个server涉及到以下几个功能: 1. ...
原创
发布博客 2018.05.22 ·
4382 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

升级Retrofit2遇到的POST请求中Content-Type字段问题

最近将项目中的Retrofit由1.9升级到2.3版本。 在没有更改请求配置的情况下,发现请求头的Content-Type不一样了。通过抓包查看请求, 1.9版本POST请求的Header字段Content-Type:application/x-www-form-urlencoded; charset=utf-82.3版本POST请求Header字段Content-Ty...
原创
发布博客 2018.04.04 ·
19727 阅读 ·
0 点赞 ·
1 评论 ·
9 收藏

Kotlin中的构造函数

假设有个Person类,含有两个属性name和age先看一个Java版本public class PersonJava { private final String mName; private final int mAge; public PersonJava(String name) { this.mName = name; this.mAg
原创
发布博客 2017.11.14 ·
12003 阅读 ·
2 点赞 ·
0 评论 ·
4 收藏

Java获得范型类型class

Java很多框架或库中都会提供具有范型的回调接口或抽象类。当我们在使用时,代码类似于:MyClient.getInstance().handleEvent(new MyCallback<SomeEntity>() { @Override public void onSuccess(SomeEntity entity) {
原创
发布博客 2017.09.14 ·
2272 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Python访问https报错CERTIFICATE_VERIFY_FAILED

在Mac上安装了Python 3.6版本,使用urllib库访问网页却返回了ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)这样的错误。这是由于MacOS版本的python 3.6版本没有使用系统的openssl进行证书验证。在/Applications/Python\ 3.6/
原创
发布博客 2017.08.23 ·
8904 阅读 ·
0 点赞 ·
3 评论 ·
6 收藏

Java中的动态代理

在实际的项目开发中,会大量的用到代理模式。这一设计模式又与面向切面编程(AOP)紧密相关。 Java中可以通过静态代理或动态代理两种方式实现代理模式。其中静态代理容易理解,但由于需要编写大量代理类及代理方法代码,非常不利于维护;而动态代理的代理类在运行时生成,也不用编写大量重复性代码,相比静态代理有很大的优势。动态代理涉及一个重要的接口InvocationHandler以及一个重要的类Proxy,
原创
发布博客 2017.05.03 ·
542 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Android通讯录的管理(联系人的增删改查)

Android中的联系人存储是通过ContentProvider实现的。因此APP对系统通讯录进行操作涉及到ContentProvider接口的使用。通讯录存储常用的数据库表使用有关接口前,首先了解一下通讯录数据库中常用的数据库表: 表名 表用途 contacts 联系人表,存储了实际的联系人姓名,头像,最后通话时间等信息。
会对实际的联系人数据进行一定去重。 raw_
原创
发布博客 2017.03.01 ·
21659 阅读 ·
11 点赞 ·
1 评论 ·
49 收藏

Handler发送消息后消息队列的处理

在Android中使用Handler不仅可以直接post发送消息,还可以通过postDelayed设定延迟时间,来延迟执行消息任务。那么这后面的机制是如何处理的呢?首先查看Handler的源码,会发现post和postDelayed内部均调用的同一方法sendMessageDelayed:public final boolean post(Runnable r){ return sendM
原创
发布博客 2017.02.09 ·
3989 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Javascript中的闭包及应用

闭包是JavaScript比较有意思的特性,也是比较难搞懂的一个概念。一个比较典型的例子就是打印循环计数—— 首先我们写一个小循环,直接打印循环变量ifunction testA() { for(var i = 0; i < 10; i++) { console.log("current: " + i); }};这个程序的输出很简单current: 0curre
原创
发布博客 2017.02.07 ·
445 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

将异步API改成同步调用

有时候为了满足需求,我们需要在自己的类中进行线程管理/开启线程,并回调我们自己封装好的回调方法。例如:public void someTask() { new Thread() { @Override public void run() { int n = yourObject.someApi(); onGetR
原创
发布博客 2017.01.16 ·
8142 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Activity启动流程

1.自定义的Actitiy类初始化工作在onCreate中 2.onCreate是回调函数,在Activity抽象类中应有直接调用的地方 3.查找Activity源码,在performCreate(5230行)处 4.查找framework源码,发现Activity的performCreate函数是在Instrumentation类中callActivityOnCreate函数中被调用 5.
原创
发布博客 2016.10.29 ·
908 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

二分查找

public class BinarySearch { // 二分查找的前提是所查找的数组已经有序。在查找过程中, // 每次取出中间的元素,与目标数值比较,若相等则直接返回; // 若不等,则根据排序规则在一侧中继续查找,直到这一侧元素仅剩一个时, // 若与目标元素相等,则直接返回;否则表明数组中没有待查找元素。 public static int bina
原创
发布博客 2016.10.13 ·
510 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java中的ReentrantLock

Java中的ReentrantLock基本功能与synchronized代码块相当,但是提供了一些高级特性。首先来看一下ReentrantLock的基本使用:public class LockTest { ReentrantLock mLock = new ReentrantLock(); int num = 0; Runnable mRunnableOne = new Runna
原创
发布博客 2016.10.05 ·
449 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Java线程中的wait(),notify()与sleep()

在Java中可以通过wait()与notify()或notifyAll()实现线程协作。简要总结有如下几点: 1.wait()让线程进入等待状态,并释放锁(而sleep等待的同时并不释放锁) 2.notify()通知wait的线程尝试获取对象锁,在此线程任务执行完后,wait的线程就会重新获得锁,继续运行。 3.wait与notify均是Object的方法,调用这两个方法需要在synchron
原创
发布博客 2016.09.28 ·
706 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Android中使用加速度传感器

在Android中使用加速度传感器可以帮助我们识别手机的姿态及运动状态。 使用加速度传感器与其他传感器的方法大致相同,通过调用系统API就可以实现。分为以下几步: 1.获取SensorManager 2.使用SensorManager获取加速度传感器 3.创建自定义的传感器监听函数,并注册 4.相对应的,在合适位置实现注销监听器的调用简单的代码如下:public class MainAct
原创
发布博客 2016.09.22 ·
18308 阅读 ·
5 点赞 ·
0 评论 ·
24 收藏

okhttp异常: java.lang.IllegalStateException: closed

09-05 14:42:17.606: E/AndroidRuntime(28219): Caused by: java.lang.IllegalStateException: closed09-05 14:42:17.606: E/AndroidRuntime(28219): at okhttp3.internal.http.Http1xStream$ChunkedSource.read
原创
发布博客 2016.09.06 ·
21197 阅读 ·
23 点赞 ·
12 评论 ·
9 收藏
加载更多