Android系统View之NestedScrollView
[TOC]
文章参考:
概述ScrollView中的组件设置android:layout_height=”fill_parent”不起作用的解决办法。
在ScrollView中添加一个android:fillViewport=”true”属性就可以了。
顾名思义,这个属性允许 ScrollView中的组件去充满它。
当ScrollView没有fillVeewport=“true”时, 里面的元素(比如LinearLayout)会按照wrap_content来计算(不论它是否设了”fill_parent”),而如果LinearLayout的元素设置了fill_parent,那么也是不管用的,因为LinearLayout依赖里面的元素,而里面的元素又依赖LinearLayout,这样自相矛盾.所以里面元素设置了fill_parent,也会当做wrap_content来计算。
系统属性
AIDL文件生成解析
[TOC]
文章参考:https://blog.csdn.net/hzw19920329/article/details/51926913
概述
AIDL通信对象传输
[TOC]
文章参考:https://www.jianshu.com/p/4fcacf9479b0
文章参考:https://www.kancloud.cn/alex_wsc/android_art/1828310
概述
Android之3D人脸渲染
[TOC]
文章参考:https://github.com/jrichardsz/Android3D-min3d-Face-Rotation
概述
camera2基础教程一
[TOC]
文章参考:https://www.jianshu.com/p/9a2e66916fcb
概述
Jni学习之Android Studio集成C++代码
[TOC]
文章参考:https://developer.android.com/studio/projects/add-native-code?hl=zh-cn
文章参考:https://juejin.im/post/5db28ad4f265da4cf022c866
文章参考:《NDK开发指南》https://developer.android.com/training/articles/perf-jni?hl=zh-cn
概述您可以向 Android 项目添加 C 和 C++ 代码,只需将相应的代码添加到项目模块的 cpp 目录中即可。在您构建项目时,这些代码会编译到一个可由 Gradle 与您的 APK 打包在一起的原生库中。然后,Java 或 Kotlin 代码即可通过 Java 原生接口 (JNI) 调用原生库中的函数。如需详细了解如何使用 JNI 框架,请参阅 Android JNI 提示。
Android Studio 支持适用于跨平台项目的 CMake,以及速度比 CMake 更快但仅支持 Android 的 ndk-build。目前不支持在同一模块中同时使用 CMak ...
Android之JNI学习之CMake编译基础
[TOC]
概述Gradle配置设置SO编译的平台1234// 指定abi,如需在模拟器调试,增加"x86",否则指定"armeabi-v7a"即可 ndk { abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64" }
CMake版本的设置123456789101112defaultConfig { // 指定abi,如需在模拟器调试,增加"x86",否则指定"armeabi-v7a"即可 ndk { abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64" } // 导入CMake构建。声明C++的版本号 externalNat ...
Jni学习之Java调用C++的代码
[TOC]
概述当执行一个 Java 的 native 方法时,虚拟机是怎么知道该调用 so 中的哪个方法呢?
我们肯定是要简历一个上层Java和底层C++的一个方法调用关系的映射。那么这个映射关系就是JNI开发中的方法注册。通过方法注册将指定的 native 方法和 so 中对应的方法绑定起来(函数映射表),这样就能够找到相应的方法了。
JNI用法为了使用JNI,在调用本地方法前必须把C/C++代码所在的动态库装载到进程的内存空间中。装载库文件调用的是System类的LoadLibrary()方法,原型如下:
1public static void loadLibrary(String libName)
loadLibrary()方法的参数是动态库文件名称的一部分。Android JNI动态库的名称必须以“lib”开头,这里传入的参数是去掉前缀“lib”,以及后缀“.so”的中间部分。例如,库文件名是libhello-jni.so,装载库的语句要写成loadLibrary(“hello-jni “)。这里为什么不使用全文件名呢?JNI原本是Java的产物,Java希望代码 ...
Jni学习之基础数据类型转换
[TOC]
概述数据类型JNI的基础数据类型转换12345678910// JNI的数据类型和C++中的数据类型的对照表/* Primitive types that match up with Java equivalents. *///typedef uint8_t jboolean; /* unsigned 8 bits *///typedef int8_t jbyte; /* signed 8 bits *///typedef uint16_t jchar; /* unsigned 16 bits *///typedef int16_t jshort; /* signed 16 bits *///typedef int32_t jint; /* signed 32 bits *///typedef int64_t jlong; /* signed 64 bits *///typedef float jfloat; /* 32-bit IEEE 754 *///typedef double jdouble; /* 64-b ...