Topwo博客
首页
博客
项目
NDK提供的共享库(Prebuilt)
Android
2021-09-27
Android NDK r5 开始支持预编译库(动态库和静态库),即程序能使用库的预编译版本。 该特性可用于以下两方面: 1)向第三方NDK开发人员发布你的共享库而不用提供源码。 2)使用一个提前编译好的库(预编译库)来加速编译过程。 本文说明该特性如何工作。 ### I. 声明一个预编译库的模块 对于Android编译工具而言,每个预编译库必须声明为一个独立的模块。这里举一个例子,假设 libfoo.so 文件与 Android.mk 位于同一个目录:
阅读原文>>
java.lang.NoClassDefFoundError:failed resolution of :Lorg/apache/http/client/***
Android
2021-09-27
在Android 9.0 / P 手机上,闪退,运行APP报错java.lang.NoClassDefFoundError:failed resolution of :Lorg/apache/http/*** #### 问题分析: 出现此问题主要是 apache 的 http 库在android 9.0删除导致的,出现此问题应该是使用了 apache 的http库。 #### 修改建议: 尽量不要再使用httpClient来访问网络,替换成HttpURLConnection或者OKHttp。最后再说明一下:尽量不要使用过时的库进行开发。 在AndroidManifest.xml文件的application标签里面加入 ```xml <uses-library android:name="org.apache.http.legacy" android:required="false" ></uses-library> ```
阅读原文>>
Android 8 http明文问题:Cleartext HTTP traffic not permitted #AndroidPie
Android
2021-09-27
从Android 9(API级别28)开始,默认情况下禁用明文支持。 ### 方法1 在AndroiManifest.xml中使用useCleartextTraffic值“ true” 已从Android 6.0中添加了useCleartextTraffic属性。对于Android Pie,此属性的默认值为“ false”,因此我们需要重新配置此属性,以便可以使用明文。 ```xml <application android: usesCleartextTraffic = “true” … ```
阅读原文>>
NDK toolchain对应ABI
Android
2021-09-27
### Android NDK: This NDK supports the following toolchains and target ABIs: Android NDK: aarch64-linux-android-4.9: arm64-v8a Android NDK: aarch64-linux-android-clang3.4: arm64-v8a Android NDK: aarch64-linux-android-clang3.5: arm64-v8a Android NDK: arm-linux-androideabi-4.6: armeabi armeabi-v7a armeabi-v7a-hard Android NDK: arm-linux-androideabi-4.8: armeabi armeabi-v7a armeabi-v7a-hard Android NDK: arm-linux-androideabi-4.9: armeabi armeabi-v7a armeabi-v7a-hard Android NDK: arm-linux-androideabi-clang3.4: armeabi armeabi-v7a armeabi-v7a-hard Android NDK: arm-linux-androideabi-clang3.5: armeabi armeabi-v7a armeabi-v7a-hard Android NDK: mips64el-linux-android-4.9: mips64
阅读原文>>
#if, #elif, #else, #endif 使用
C/C++
2021-09-27
有些程序在调试、兼容性、平台移植等情况下可能想要通过简单地设置一些参数就生成一个不同的软件,这当然可以通过变量设置,把所有可能用到的代码都写进去,在初始化时配置,但在不同的情况下可能只用到一部分代码,就没必要把所有的代码都写进去,就可以用条件编译,通过预编译指令设置编译条件,在不同的需要时编译不同的代码。 ### (一)条件编译方法 条件编译是通过预编译指令来实现的,主要方法有: #### 1、#if, #elif, #else, #endif ```c #if 条件 1 代码段 1 #elif 条件 2 代码段 2 ...
阅读原文>>
shell——tr的用法
其他
2021-09-27
### tr(translate缩写)主要用于删除文件中的控制字符,或进行字符转换。 语法:`tr [–c/d/s/t] [SET1] [SET2]` SET1:字符集1 SET2:字符集2 -c:complement,用SET2替换SET1中没有包含的字符 -d:delete,删除SET1中所有的字符,不转换 -s:squeeze-repeats,压缩SET1中重复的字符 -t:truncate-set1,将SET1用SET2转换,一般缺省为-t ### 1、去除重复的字符
阅读原文>>
解决shell脚本遍历带空格的文件/文件夹名
其他
2021-09-27
#### 由于shell数组默认拿空格当分隔符,所以通过临时改变数组分隔符的方式,可以解决遍历带空格的文件/文件夹名的问题。至于分隔符可以选择文件/文件夹名不可以使用的换行符\n,代码如下: ```shell #临时改变数组分隔符 OLD_IFS="${IFS}" IFS=$'\n'#这里特别注意,一定要这么写,有疑惑的可以看一下这篇文章:IFS的使用 for file in `ls`; do echo "${file}" done IFS="${OLD_IFS}"
阅读原文>>
shell中的特殊变量IFS的使用,以及其值为'\n'
其他
2021-09-27
在shell中使用到for循环时,是通过IFS同样也是来定义分隔符。如果要指定多个IFS字符,只要将他们在赋值行串起来就行。如下: ```shell IFS=$'\n':;" ``` 这个赋值会将换行符、冒号、分号和双引号作为字段分隔符。如何使用 IFS 字符解析数据没有任何限制。那么下面三个的区别是什么呢? ```shell IFS='\n' #将字符\和字符n作为IFS的换行符。 IFS="\n" #与上面一样。 IFS=$'\n' #正真的使用换行符做为字段分隔符。
阅读原文>>
shell如何使目录下的文件按文件大小排序
其他
2021-09-27
### 在目录下运行:`ls -l|sort -n -k5`
阅读原文>>
shell里读取Json数据
其他
2021-09-27
#### 推荐python方法,通过引用python方法来更方便的解析。 ### 一、json字符串 ```shell echo '{"hostname":"test","domainname":"example.com"}' | python -c 'import json,sys;obj=json.load(sys.stdin);print obj[0]["hostname"]' ``` ### 二、json文件 ```shell cat file.json | python -c "import json; import sys; obj=json.load(sys.stdin); print obj['province'][1]['name'].encode('utf-8')" ```
阅读原文>>
首页
上一页
28
下一页
尾页
文章推荐
NDK提供的共享库(Prebuilt)
2021-09-27
java.lang.NoClassDefFoundError:failed resolution of :Lorg/apache/http/client/***
2021-09-27
Android 8 http明文问题:Cleartext HTTP traffic not permitted #AndroidPie
2021-09-27
NDK toolchain对应ABI
2021-09-27
#if, #elif, #else, #endif 使用
2021-09-27