Jockio's Blog

  • 首页
  • 归档
  • 分类
  • 标签
  • 关于

IntelliJ IDEA Mac快捷键

发表于 2018-03-25

智能提示

⌘ -> command
⇧ -> shift
⌥ -> option
⬆ -> 上箭头
⬇ -> 下箭头
⌃ -> Control

阅读全文 »

许久未见,你,还好吗?

发表于 2018-03-24 | 分类于 life

好久不见,你,还好吗?

从源码角度分析 Handler Looper MessageQueue

发表于 2016-08-16 | 分类于 android , tech

前言

首先我们要知道,创建Handler之前,要先创建与之配套的Looper。
在主线程中,系统已经初始化了一个 Looper 对象,因此程序直接创建 Handler 对象即可,然后就可以通过 Handler 来发送、处理消息了。
在子线程中,必须自己创建一个 Looper 对象,并启动它。
创建 Looper 对象调用它的 prepare 方法即可(prepare 方法保证每个线程最多只有一个 Looper 对象),然后调用 Looper 的静态 loop 方法来启动它。loop 方法使用一个死循环不断地从MessageQueue 中取消息,并将取出的消息分发给该消息对应的 Handler 处理。至于它们具体做了哪些事,我们会在后面详细讲述。

阅读全文 »

Android Studio 之 JNI 开发详解

发表于 2016-08-02 | 分类于 android

前言

  1. 什么是NDK?
    NDK全称是Native Development Kit,NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。NDK集成了交叉编译器(交叉编译器需要UNIX或LINUX系统环境),并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。
  2. 为什么使用NDK?
    1.)代码的保护。由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。
    2.)可以方便地使用现存的开源库。大部分现存的开源库都是用C/C++代码编写的。
    3.)提高程序的执行效率。将要求高性能的应用逻辑使用C开发,从而提高应用程序的执行效率。
    4.)便于移植。用C/C++写得库可以方便在其他的嵌入式平台上再次使用。
  3. 什么是JNI?
    JNI全称为:Java Native Interface。JNI 是本地编程接口,它使得在 Java 虚拟机内部运行的 Java 代码能够与用其它语言(如 C、C++)编写的代码进行交互。
  4. 为什么使用JNI?
    JNI的目的是使java方法能够调用c实现的一些函数。
  5. 安卓中的so文件是什么?
    Android中用到的so文件是一个c++的函数库。在android的JNI中,要先将相应的C语言打包成so库,然后导入到lib文件夹中供java调用。Android中用到的so文件是一个c++的函数库。在android的JNI中,要先将相应的C语言打包成so库,然后导入到lib文件夹中供java调用。Android中用到的so文件是一个c++的函数库。在android的JNI中,要先将相应的C语言打包成so库,然后导入到lib文件夹中供java调用。Android中用到的so文件是一个c++的函数库。在android的JNI中,要先将相应的C语言打包成so库,然后导入到lib文件夹中供java调用。
阅读全文 »

屏幕适配之百分比布局

发表于 2016-07-22 | 分类于 android

前言

刚刚复习多屏幕适配的时候,想到之所以要对手机屏幕进行适配,是因为Android手机的屏幕碎片化太过于严重。但转念一想,电脑屏幕的碎片化相对于手机只会有过之无不及吧,网上查找了下,发现前端之所以没有强调屏幕适配,是因为它们引入了百分比。

然后谷歌搜了下,才发现去年(2015年)谷歌就已经在Android中引入了百分比来适配不同的屏幕,原来我已经out了……

阅读全文 »
12…5
Jockio

Jockio

Be simple, not be silly.

23 日志
7 分类
8 标签
RSS
GitHub Twitter Weibo
© 2016 — 2018 Jockio
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4