- 博客(12)
- 收藏
- 关注
原创 Android Studio 配置 NDK 只编译一种 ABI 的so (mac/ndk-build)
如果不配置 ndk 编译的 so 类型,Android Studio 默认会编译出多种 ABI 的 so,比如Android Studio 已有项目添加NDK支持(mac/ndk-build)中会有 arm64-v8a、armeabi-v7a、x86_64、x86 四种 so:如果需要控制 ndk-build 的 so 类型,只需要在 gradle.build 中添加:android { defaultConfig { ndk { ..
2020-12-23 16:46:15
4007
1
原创 Android Studio 已有项目添加NDK支持(mac/ndk-build)
1、配置已安装的ndk版本到Android NDK Location 路径:/Users/miao/Library/Android/sdk/ndk/21.0.6113669 (File -> Project Structure -> SDK Location -> Android NDK Location)2、在app module下的 src/main 目录新建 jni 目录3、在 MiaoApplication 中添加 native 方法声明:public stati.
2020-12-23 02:13:38
2115
原创 从finalize的执行来看强引用、弱引用、软引用
在finalize的执行来看什么是GC Root我们测试了不同GC Root可达时,对对象finalize方法的执行的影响。下面我们测试一下不同引用对对象finalize方法的执行的影响。public class RootTest { static int gcTime = 0; public static void main(String[] args) throws Inte...
2018-06-27 20:40:46
552
原创 Java中局部变量、实例变量和静态变量在方法区、栈内存、堆内存中的分配
Java中的变量类型根据不同的标准可以分为两类,如果以其引用的数据类型的不同来区分可分为“原始数据类型变量和引用数据类型变量”,如果以其作用范围的不同来区分可分为“局部变量,实例变量和静态变量”。根据“Java中的变量与数据类型”中的介绍,“变量是在内存中分配的保留区域的名称。换句话说,它是一个内存位置的名称”,也就是说我们通过这个变量名字就可以找到一个指向这个变量所引用的数据的内存指针,根据变量...
2018-06-06 19:57:13
17651
21
翻译 Java中的变量与数据类型
一个变量是“在Java程序执行时持有值”的一个容器,一个变量会被分配一个数据类型,变量是一个内存位置的名字。 Java中有三种类型的变量:局部,实例和静态。在java中有两种类型的数据类型:原始类型和非原始类型。Java中的变量变量是在内存中分配的保留区域的名称。换句话说,它是一个内存位置的名称。它是一个“变化+能够”的组合,意味着它的值可以改变。int data=50;//这里 data 是变量...
2018-06-06 18:20:32
3299
3
原创 Activity前后台、旋转、跳转生命周期变化
Activity前后台06-05 11:52:16.676 26146-26146/at.miao.miaoapplication E/miao_log: onCreate 启动06-05 11:52:16.711 26146-26146/at.miao.miaoapplication E/miao_log: onStart06-05 11:52:16.714 26146-26146/at.mia...
2018-06-05 12:12:53
1769
原创 ScheduledExecutorService与Timer的方法比较
ScheduledExecutorService与Timer都有scheduleAtFixedRate方法,scheduleWithFixedDelay只有ScheduledExecutorService有。ScheduledExecutorService 的 scheduleAtFixedRate(Runnable command,long initialDelay,long period1,TimeUnit unit) 与Timer 的 scheduleAtFixedRate(TimerTask tas
2017-07-11 18:34:30
743
原创 java.nio.channels.FileChannel中lock()与tryLock()方法的区别(Android Studio代码环境)
FileChannel中的lock()与tryLock()方法都是尝试去获取在某一文件上的独有锁(以下简称独有锁),可以实现进程间操作的互斥。区别在于lock()会阻塞(blocking)方法的执行,tryLock()则不会。
2017-06-29 15:18:10
10628
原创 Android获取View位置getHitRect、getDrawingRect、getLocalVisibleRect、getGlobalVisibleRect说明
在Android中获取View在父View或在屏幕中的位置可以使用getHitRect、getDrawingRect、getLocalVisibleRect、getGlobalVisibleRect,以判断View是否显示在屏幕中。一般这样使用(xxx为其中的一个)View view =...;Rect rect = new Rect();view.xxx(rect);int left = rect.left;int top = rect.top;int right = rect.righ
2016-11-08 16:25:32
17333
原创 Java内部类持有外部类的引用详细分析与解决方案
在Java中内部类的定义与使用一般为成员内部类与匿名内部类,他们的对象都会隐式持有外部类对象的引用,影响外部类对象的回收。解决方案为1.将内部类定义为static2.用static的变量引用匿名内部类的实例或将匿名内部类的实例化操作放到外部类的静态方法中
2016-11-08 11:55:45
19802
原创 Java父类与子类中静态代码块 实例代码块 静态变量 实例变量 构造函数执行顺序
实例化子类时,父类与子类中的静态代码块、实例代码块、静态变量、实例变量、构造函数的执行顺序是怎样的?代码执行的优先级为:firest:静态部分second:实例化过程详细顺序为:1.父类静态代码块与父类静态变量赋值(取决于代码书写顺序)2.子类静态代码块与子类静态变量赋值(取决于代码书写顺序)3.父类实例变量赋值与父类代码块(取决于代码书写顺序)4.
2016-11-03 20:16:06
1559
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人