自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (7)
  • 收藏
  • 关注

原创 虚拟机-通过字节码分析面试题

在面试的时候,我们经常问碰到字符串相关的问题,问一段代码会产生几个对象,今天我们选取几个典型的例子,通过字节码以及字符串常量池来简单分析一下。 问题一 public class Test1 { public static void main(String[] args) { String s = "a"+"b"+"c"; } } 首先编译java文...

2018-04-05 00:44:03 474

原创 CoordinatorLayout源码分析-事件传递流程

我们知道,发生点击事件时,会首先调用ViewGroup的dispatchTouchEvent()方法,处理事件的分发,查看CoordinatorLayout并没有发现该方法, 由于它直接继承至ViewGroup,因此是默认的实现 public boolean dispatchTouchEvent(MotionEvent ev) { if (disallowInterce...

2018-04-03 00:33:19 766

原创 DiskLruCache源码分析

首先,摆一套基本的使用流程 /** * 初始化 */ private void initDisk() { File cacheDir = getDiskCacheDir(MainActivity.this, "bitmap"); if (!cacheDir.exists()) { cacheDir.m

2018-01-29 21:07:48 250

原创 gson源码解析-数组

今天看看数组相关的转换 private void array() { List<User> users = new ArrayList<>(); for (int i = 0; i < 5; i++) { User user = new User(); user.setAge(24+i);

2017-12-28 23:08:46 236 2

原创 gson源码解析-普通对象

User user = new User(); user.setName("fcl"); user.setAge(24); String s = new Gson().toJson(user);首先看最简单的转换 public String toJson(Object src, Type typeOfSrc) { StringWriter w

2017-12-28 23:08:01 423

原创 ButterKnife源码初步探秘

butterknife使用很方便,在接入之后,在activity中使用ButterKnife.bind(this)即可 public static Unbinder bind(@NonNull Activity target) { View sourceView = target.getWindow().getDecorView(); return createBinding(ta

2017-08-04 20:27:51 270

原创 NDK之cmake初步尝试

2.2以后默认使用cmake,创建项目时记得选择支持c++,会在app目录下自动生成CMakeLists.txt,以及在cpp下生成native-lib.cpp先看看默认的cpp文件的内容#include <jni.h> #include <string>extern "C" JNIEXPORT jstring JNICALL Java_com_example_groot_cmaketest3_Ma

2017-08-02 21:31:53 617 1

原创 linux驱动之输入子系统

对于驱动开发者来说,对按键 触摸屏 鼠标等设备分别进行文件操作显得很繁琐,他们具有一些相同的规律,即内核负责记录数据,应用负责读取数据,因此,内核开发者为了简化驱动开发者的工作,特地创造了输入子系统。 输入子系统分为两层,一个是驱动子系统,一个是文件操作子系统。驱动子系统依旧由驱动开发者完成,当发生一个事件时,驱动向子系统核心发送一个事件报告,子系统核心将这个报告交给文件操作子系统,由后者将具体

2015-07-06 20:35:08 599

原创 linux驱动之异步通知

异步通知 为了启动文件的异步通知机制,用户程序需要执行两个步骤: 1 fcntl(int fd, F_SETOWN, getpid());  //设置接受SIGIO和SIGURG的进程,如果getpid()为负表示以该值绝对值为值的进程组,其实就是对filp->f_owner赋值 signal(SIGIO, button_signal_function);//接收到SIGIO信号

2015-07-05 17:11:30 729

原创 linux驱动之按键

key.c #include #include #include #include /* For module specific items */ #include /* For new moduleparam's */ #include /* For standard types (like size_t) */ #include /* For the -ENODEV

2015-07-05 14:05:43 399

原创 共享内存

在头文件定义一个全局变量int a,当两个程序同时包含这个头文件时,只是说明他们不需要再次定义a,并不表明他们共享一个变量a,因为对于不同的进程,会分配不同的地址存放a。所以在A程序中对a作出修改,B中并不会有相应变化,此时,就要用到共享内存。 共享内存,是在物理地址分配一块内存,然后分别映射到两个进程的地址空间,于是A进程对于这块内存的操作,会影响到B进程。 #include #i

2015-06-06 11:34:04 525

原创 段错误

段错误

2015-05-30 09:38:34 582

NDK之cmake

NDK之cmake初步尝试 博客对应的代码

2017-08-02

MyPager.zip

博客 ViewPager显示本地或网络图片的封装 对应的代码,有需要可以下载

2016-04-09

音乐播放器apk

支持本地歌曲/在线歌曲播放,以及歌词显示.

2016-03-13

ubuntu上网

在ubuntu上连网,使用mentohust代替锐捷,deb包可以直接安装使用,方便快捷

2015-07-29

手机sqlite3

从安桌模拟器拷贝出来的sqlite3和libsqlite.so,有需要可以下载

2015-07-15

mplayer播放器

基于gtk+3.0开发的一个功能非常简单的mplayerGUI,由于是初学者,所以程序有一些bug。而且不是学软件的,所以很多地方肯定很不规范,希望各位能够指正。

2015-06-27

日月选择器

简单的日月选择器实现,请大家关注下拉文本框部分的代码,其余部分为个人娱乐,所以大家看起来或许会觉得奇怪

2015-05-30

空空如也

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

TA关注的人

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