ndk r17版本不再支持mips

编译报错 AndroidSdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/mips64el-linux-android-strip是因为r17版本不再支持mips找不到对应文件如果不需要编译...

2018-05-28 10:47:43

阅读数 1197

评论数 0

centOS命令行装androidSDK

linux中安装ndk与配置ndk环境变量:1、首先是官网找最新的linux下ndk安装包https://developer.android.google.cn/ndk/downloads/index.html 复制链接 wget下来2、unzip解压缩到{目标安装目录}3、这时候就需要配置环境变...

2018-04-15 01:14:35

阅读数 409

评论数 0

基于比较的排序时间下界

一个长度为n的集合排序的结果有n!个结果。以比较为基础的排序方式可以看做二叉树,每个非叶节点左右决定每次比较大小的走向,那么显然所有的排序结果都是在这个二叉树上的叶子(存在可能一结果多个叶子)。已知叶子节点数为不少于n!个,那么时间复杂度下界的求解就转化为,求解:一个已知叶子节点数不小于n!的二叉...

2018-04-08 00:17:51

阅读数 136

评论数 0

BitmapFactory.Options的inDensity与drawable目录的关系

源码获取图片 在BitmapFactory.decodeResource时 options通常传入null那么在调用以下方法时 /** * Decode a new Bitmap from an InputStream. This InputStream was obtained ...

2018-04-03 22:30:27

阅读数 90

评论数 1

Unsafe类的CAS

在FutureTask中使用到了大量Unsafe类的compareAndSwapObject方法在遇到线程安全问题时,我们通常需要使用锁来解决问题。而其中分为悲观锁与乐观锁,java中的synchronize关键字使用的就是悲观锁,它完全排除其他线程操作的可能,让其他有可能操作的线程挂起,独占资源...

2018-04-03 22:29:51

阅读数 108

评论数 1

Android源码中的jni方法追踪

Android源码中的jni方法通常不是按照Java_路径名_方法名定义的,都是动态注册的,那么Android的JNI_Onload函数在哪里,我们又怎么去查询对应的函数实现呢?答案就在AndroidRuntime.cpp这里定义了动态加载的RegJNIRec结构体数组static const R...

2018-04-03 22:17:53

阅读数 195

评论数 0

linux的epoll实现

今天读到Looper的native实现 中间是依赖linux底层的epoll实现的,所以把今天了解到的相关知识做个整理。epoll是linux多路复用机制中select/poll的升级版。先谈谈select/poll代理即规避了单路阻塞式在多路并发时的线程/进程开销,又规避了忙轮询式 一直不停的问...

2018-04-03 22:08:59

阅读数 76

评论数 0

线程局部存储TLS

这里说的不是ssl里得安全传输协议。它的全名是Thread-Local Storage线程局部存储。又叫TSD:Thread-Specific Data线程特有数据池在C/C++程序中常存在全局变量、函数内定义的静态变量以及局部变量,对于局部变量来说,在栈里,其不存在线程安全问题。但是全局变量和函...

2018-04-03 22:05:46

阅读数 83

评论数 0

MessageQueue.java源码分析

 前一篇文章Looper.java分析中已经提到mq实际上初始化nativeInit的是一个c的实例NativeMessageQueue,并将其指针reinterpret_cast<jlong>(nativeMessageQueue)保存在mPtr中@S...

2018-04-02 20:14:35

阅读数 233

评论数 0

Looper.java分析

Looper作为Android中线程间通讯的核心,起着至关重要的作用。它与Handler,MessageQueue一起封装了一套完整的通讯机制。在调用Looper时,需要先执行prepare() 接着就可以loop()开始接收消息了。我们从来没有在应用的主线程中调用prepare()是因为在Act...

2018-03-21 23:47:55

阅读数 264

评论数 0

eventfd函数

eventfd是从LINUX 2.6.27版本开始增加的,主要用于进程或者线程间的通信(如通知/等待机制的实现)。实现了线程之间事件通知的方式,也可以用于用户态和内核通信。eventfd的缓冲区大小是sizeof(uint64_t);向其write可以递增这个计数器,read操作可以读取,并进行清...

2018-03-21 16:38:34

阅读数 134

评论数 0

AsyncTask源码简析

(源码来自sdk7.0)构造方法构造方法有3个/** * Creates a new asynchronous task. This constructor must be invoked on the UI thread. */ public AsyncTask() ...

2018-02-23 01:46:43

阅读数 91

评论数 0

jdk8 HashMap源码分析

我们都知道 java的HashMap使用分离链接法实现 static final int DEFAULT_INITIAL_CAPACITY = 1 static final int MAXIMUM_CAPACITY = 1 static final float DEFAULT_L...

2018-01-23 11:32:33

阅读数 154

评论数 0

WebViewProvider的创建

private WebViewProvider mProvider mProvider作为WebView中一个重要的成员变量,几乎大部分WebView的方法实际实现是在这个对象里的。那么这个对象究竟是如何创建的呢? private void ensureProviderCreated() { ...

2017-11-21 10:53:50

阅读数 1543

评论数 0

RelativeLayout的onMeasure源码分析

都知道RelativeLayout的一次测量调用两次子视图测量循环 横向一次 纵向一次 带着目的, 我们来分析源码 @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { ...

2017-07-22 02:42:57

阅读数 551

评论数 2

AppCompatActivity的魔术——如何做到适配新控件

大家都知道google要求使用app的模板类继承AppCompatActivity 这是一个继承FragmentAcvitivy的类,他是怎么做到让过时控件去使用酷炫的新特性的呢? 来看源码 核心变量 private AppCompatDelegate mDelegate; 这是兼容的老套路,便于...

2017-07-11 17:28:17

阅读数 1572

评论数 0

Android手势 怎么样才算长按(GestureDetector源码)

GestureDetector里onLongPress方法的回调来自 private void dispatchLongPress() { mHandler.removeMessages(TAP); mDeferConfirmSingleTap = fal...

2017-07-05 15:58:30

阅读数 330

评论数 0

ItemTouchHelper实现部分响应拖动

/**      * Starts dragging the provided ViewHolder. By default, ItemTouchHelper starts a drag when a      * View is long pressed. You can disable tha...

2017-07-04 23:23:17

阅读数 652

评论数 1

源码分析 ItemTouchHelper手势的入口 (OnInterceptTouchEvent onLongPress等)

ItemTouchHelper手势的实现都在匿名内部类mOnItemTouchListener中实现, private final OnItemTouchListener mOnItemTouchListener = new OnItemTouchListener() ...

2017-07-04 19:53:18

阅读数 417

评论数 0

ItemTouchHelper源码分析 手势分析OnTouchEvent

ItemTouchHelper手势的实现都在匿名内部类mOnItemTouchListener中实现, private final OnItemTouchListener mOnItemTouchListener = new OnItemTouchListener() 与R...

2017-07-04 00:21:21

阅读数 884

评论数 0

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