Home

Linux 源

Linux 源 linux #deb https://mirrors.aliyun.com/kali kali-rolling main non-free contrib #deb-src https://mirrors.aliyun.com/kali kali-rolling main non-free contrib github 1. 修改Hosts 速度到100kb 2. 使用码云转一道, 麻烦 但是速度快 flutter SDK下载地址: https://storage.flutter-io.cn/flutter_infra/releases/stable/windows/flutter_windows_v1.0.0-stable.zip export PUB...

Read more

Linux C/C++跨平台编程

Linux C/C++跨平台编程 使用POSIX 函数 windows 需要使用Cygwin, Cygwin中脚本文件需要使用dos2unix程序 转换一下 1. 找不到ntohll和htonll函数 需要自己实现 u_int64_t my_htonll(u_int64_t val) { return (((u_int64_t) htonl(val)) << 32) + htonl(val >> 32); } u_int64_t my_ntohll(u_int64_t val) { return (((u_int64_t) ntohl(val)) << 32) + ntohl(val >> 32); } R...

Read more

Android Studio 下载jar包

Android Studio 下载jar包 Android Studio下载kotlin-compiler-embeddable 非常慢, 时间长了还会报read time out 所以需要自行下载后, 把jar放到正确的位置. https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.2.31/kotlin-compiler-embeddable-1.2.31.jar https://dl.google.com/dl/android/maven2/com/android/tools/external/com-intellij/kotlin-compiler/26.2.1/kotli...

Read more

Android 权限

Android 权限 系统6.0后需要动态获取权限 判断系统版本 Build.VERSION.SDK_INT >= 23 判断是否有对应的权限 int checkCallPhonePermission = ContextCompat.checkSelfPermission(WelcomeActivity.this, Manifest.permission.READ_PHONE_STATE); if (checkCallPhonePermission != PackageManager.PERMISSION_GRANTED) 请求权限 requestPermissions(new String[]{Manifest...

Read more

Android 使用老库, 32位库支持64位

Android 使用老库, 32位库支持64位 如果第三方库蛮老(使用旧版本的NDK编译), 那么在新系统上会报错 java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/com.teamsun.community.report-1/lib/arm64/libIDCardengine.so" is 32-bit instead of 64-bit 目前常用的ABI平台有arm64-v8a,armeabi-v7a,armeabi, 前面两个较新 java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/com.teamsun.community.report...

Read more

Compute Unicode

Compute Unicode 如果是UTF-8, UTF-16, UTF-32, 那么需要使用零宽度非换行空格(ZERO WIDTH NO-BREAK SPACE) 来表示字节顺序. FEFF表示大端, FFFE表示小端 UTF-8 可变长度的编译, 英文一个字节, 常用中文3字节, 不常用中文4字节. UTF-16 分为大头端UTF-16BE, 小头端UTF-16LE 最少2个字节, 中字4字节 Reference

Read more

Build CMake

Build CMake CMake Doc CMake把源分为可执行文件和已编译头文件, 可执行文件用来链接或执行, 已编译头文件用 来导入(include) 依赖检查 cmake_minimum_required(VERSION 3.10) # set the project name and version project(Tutorial VERSION 1.0) 添加子任务, 会在子目录中找CMakeLists.txt文件 add_subdirectory(MathFunctions) 检查函数是否存在 include(CheckSymbolExists) set(CMAKE_REQUIRED_LIBRARIES “m”) check...

Read more

Android JNI

Android JNI Java Native Interface(JNI), 使Java可用调用C, C++, Assembly. 这是一个规范, 不依赖 Java VM具体实现. 下面的示例说明了当您需要使用Java本机方法时: 标准Java类库不支持应用程序所需的依赖于平台的特征。 您已经有了用另一种语言编写的库,并且希望通过JNI访问Java代码。 您希望在低级语言(如汇编)中实现一小部分时间关键代码。 通过JNI编程,可以使用本机方法来: 创建、检查和更新Java对象(包括数组和字符串)。 调用Java方法。 捕获和抛出异常。 加载类并获取类信息。 执行运行时类型检查。 JNI备选方案: JDK 1.0 native...

Read more