异常我们已经很熟悉了,空指针、数组越界等等,在Java中,当抛出一个异常,虚拟机会停止执行代码块并进入调用栈反向检查能处理特定异常的异常处理程序代码块,虚拟机清除异常并将控制权交给异常处理程序。而JNI不同,JNI没有像…
分类:移动开发
Java基础知识--“位移”
** 文章摘要 ** 1、移位包括左移和右移。左移相当于乘法,右移相当于除法。 2、右移包括带符号右移,无符号右移。 一、“位移”操作规则 1、左移:“a<<b”,将二进制a依次左移b位,低位空出来的b个位置…
PermissionScope Swift4 兼容问题
PermissionScope是iOS非常好用的权限处理库,界面效果也非常精美。不幸的是作者已经停止维护。 PermissionScope is no longer supported. Please use an al…
在xib或者storyboard 利用runtime给layer添加属性的坑
我们都知道怎么用代码给layer设置圆角,描边,阴影等属性 layer.borderWidth layer.cornerRadius layer.borderUIColor layer.masksToBounds 在xi…
Android RxCache使用详解
前言 我为什么使用这个库? 事实上Android开发中缓存功能的实现选择有很多种,File缓存,SP缓存,或者数据库缓存,当然还有一些简单的库/工具类,比如github上的这个: 【ASimpleCache】:a sim…
Gradle学习笔记(二)自定义构建基础
一、配置Manifest文件 我们可以直接通过构建文件而不是manifest文件来配置applicationId、minSdkVersion、targetSdkVersion、versionCode和versionNam…
minSdkVersion 21 的情况下使用 lint 检查低版本调用高版本方法
前言 公司项目近期正在将 XML 布局文件转换为纯代码编写,但是由于之前为了避免 65535 问题和开发环境编译速度,所以 build.gradle 中配置了一个 minSdkVersion 为 21 的 product…
优化程序性能
优化程序性能 编写高效程序需要做到如下几点 1.选择适当的算法和数据结构。 2.编写出编译器能够有效优化以转换成高效可执行代码的源代码(理解编译器的能力和局限性尤为重要)。 3.针对运算量特别大的计算,将一个任务分成多个…
常用排序(收藏)
1.排序分类: 1)插入排序(直接插入排序、希尔排序) 2)交换排序(冒泡排序、快速排序) 3)选择排序(直接选择排序、堆排序) 4)归并排序 5)分配排序(基数排序) 所需辅助空间最多:归并排序 所需辅助空间最少:堆排…
Android Tips 1
前言 本文是一篇译文,这篇是这个系列的第一篇.讲述的是Android开发中遇到的一些好用的小技巧,或者一些实用的API,很多人都知道,但也有人不知道,记录下来,如果能帮助到大家,也是极好的.由于不是严格的博文,所以翻译也…
Android APP架构心得
前言 从JavaEE转到Android开发也2年多了,开发的项目也有4,5个了(公司项目),其中有3个项目前期都是自己独立开发,从一开始的毫无架构到现在对如何架构也有一点心得,所以在此分享出来,大家一起交流 什么是架构 …
Drawable Cache引起的背景连锁改变问题
最近在开发过程中遇到一个bug:我在一个recyclerview的onScrolled回调中改变另一个独立view的背景透明值,从而实现比较友好的交互效果。代码如下: `mSearchViewLayout.getBack…