为什么 UIScrollView 的滚动会导致 NSTimer 失效?
定时器里面有个runoop mode,一般定时器是运行在Defaultmode上但是如果滑动了这个页面,主线程runloop会转到UITrackingRunLoopMode中,这时候就不能处理定时器了,造成定时器失效,原因就是runroop mode选错了。
解决办法有2个:
1:更改mode为NSRunLoopCommonModes(无论runloop运行在哪个mode,都能运行)
2:切换到主线程来更新UI界面的刷新
继续阅读 »
在Javascript的开发过程中,经常会遇到一些重复性的任务,比如合并文件、压缩代码、检查语法错误、将Sass代码转成CSS代码等等。通常,我们需要使用不同的工具,来完成不同的任务,既重复劳动又非常耗时。Grunt就是为了解决这个问题而发明的工具,可以帮助我们自动管理和运行各种任务。
简单说,Grunt是一个自动任务运行器,会按照预先设定的顺序自动运行一系列的任务。这可以简化工作流程,减轻重复性工作带来的负担。
安装
Grunt基于Node.js,安装之前要先安装Node.js,然后运行下面的命令。
```javascript
sudo npm install grunt-cli -g
```
grunt-cli表示
继续阅读 »
在项目开发中,大部分 Android 开发者都使用过 ButterKnife 这个通过注解简化代码的框架。部分 Android 开发者也使用过 xUtils 这种快速开发的框架。
两者均使用到了注解。在上一篇 Java注解、反射,安卓IOC(一) 中我们知道了注解及反射的用法。本篇会分别介绍下其实现机制。
运行时注解
首先我们自己简单实现类似 xUtils 这种运行时注解框架。
绑定 View 控件
创建注解:
```java
@Retention(RetentionPolicy.RUNTIME)//运行时注解
@Target(ElementType.FIELD)//Target为属性
public @interface
继续阅读 »
分析:此题根据如何来表示一条指令,有两种解法:一种是用一个整数(3位数)来表示,另一种用一个对象(含有3个成员,分别表示指令的3个位)来表示。前者的好处是存贮方便,但需要运行时“译码”;后者的好处是不需要运行时“译码”,但有额外的开销在对象的创建和复制上。根据网站的判题结果,二者的时间效率大体相当。more
继续阅读 »
网上有不少文档说明怎样在 linux sublime text 中输入中文的,比如这篇。本人操作系统是 manjaro linux,按照文档操作能在命令行运行能输入中文的sublime text,但要想在桌面上点击图标运行,就出问题了。
继续阅读 »
编译型和解释型:
1.1 编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件。
1.2 解释型语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译。
动态语言和静态语言(对应变量而言):
2.1 动态语言:一种在执行期间才去发现数据类型的语言, 动态语言是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。pythton
2.2 静态语言:即一种在编译时,数据类型是固定的语言。大多数静态类型定义语言强制这一点,它要求你在使用所有变量之前要声明它们的数据类型。C、C++、Java
强类型定义语言和
继续阅读 »
watch 定时监测
如同名字一样,watch就是监测一个命令的运行结果,省得自己不断的重复输入。
bash
watch -n 2 "nvidia-smi" 每两秒运行一次nvidia-smi
watch -n 2 -d "nvidia-smi" 同时高亮显示每次命令执行后变化的区域
继续阅读 »
关于Hexo
Hexo是一款轻量级的HTML静态博客生成器,由Node.js编写,支持Markdown撰写,运行速度快,可以一键部署到Github Pages等托管网站,同时支持插件,可以通过编写插件支持更加丰富的功能。
安装Hexo
Hexo基于Node.js编写,安装Hexo之前,需要首先确保正确安装了Node.js、npm和Git(参见Node.js官网、Git官网),只要运行以下命令即可将Hexo安装到电脑中:
npm install hexo-cli -g
初始化
安装Hexo成功后,即可创建Hexo工程目录,执行以下命令:
hexo init demo
cd demo
npm install
创建
继续阅读 »
xmake提供了自定义打包、安装、运行脚本,可以更加灵活的针对个人实际需求来操作xmake
这里用一个例子详细说明下,比如有个需求,我需要自动编译、安装、运行android app工程,并且能够支持jni
可以进行如下操作
首先创建个基于ant的android app工程,目录结构如下:
继续阅读 »
第一章
第一章
1.Android系统架构
~~Linux内核层->系统运行库层:底层驱动
系统运行库层->应用框架层:C/C++库,虚拟机
应用框架层->应用层: API~~
继续阅读 »