Android
文章平均质量分 62
StoneLiu999
音视频开发
展开
-
Gradle
Gradle Wrapper 是一个用于管理 Gradle 版本的工具,它使用该配置文件来指定要下载和使用的特定 Gradle 版本。总的来说,Groovy是一门功能丰富的编程语言,可以与Java无缝集成,并提供了许多便利的特性和工具,使得开发更加高效和愉快。Gradle Wrapper是一个用于下载和运行特定版本Gradle的脚本,它可以使你的项目保证使用相同的Gradle版本,无论在何处构建。上的文档,查找与你使用的Android Gradle插件版本相对应的Gradle插件版本。原创 2023-08-16 21:43:31 · 646 阅读 · 0 评论 -
unsupported flags dt_flags_1=0x8000001
unsupported flags dt_flags_1=0x8000001原创 2023-03-06 14:42:54 · 1074 阅读 · 1 评论 -
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8
问题描述把Gradle插件版本更新到7.0.2之后编译失败,出现如下错误:A problem occurred evaluating project ':app'.> Failed to apply plugin 'com.android.internal.application'. > Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8. You can try s原创 2021-10-12 10:43:03 · 16483 阅读 · 2 评论 -
Android NDK Address Sanitizer
文章目录构建运行堆栈轨迹二进制测试此文章是基于官方文档Address Sanitizer的基础上做了一些扩展说明。从 API 级别 27 (Android O MR 1) 开始,Android NDK 可支持 Address Sanitizer(也称为 ASan)。为啥从27开始呢?因为wrap.sh 仅适用于 API 级别 27 及更高级别。ASan 是一种基于编译器的快速检测工具,用于检测原生代码中的内存错误。ASan 可以检测以下问题:堆栈和堆缓冲区上溢/下溢释放之后的堆使用情况超出范围原创 2021-06-02 18:56:45 · 2252 阅读 · 6 评论 -
JNI奔溃
文章目录accessed stale WeakGlobal 0xffffffffaccessed stale WeakGlobal 0xffffffff奔溃信息indirect_reference_table.cc:61] JNI ERROR (app bug): accessed stale WeakGlobal 0xffffffff (index 268435455 in a tab...原创 2020-01-15 18:53:17 · 6776 阅读 · 0 评论 -
JNI实用封装
文章目录获取枚举字段调用构造函数调用静态方法调用对象方法Java String转换为std::stringstd::map转换为Java HashMapJava Map转换为std::map获取枚举字段jclass c = env->FindClass("android/graphics/Bitmap$Config");jfieldID id = env->GetStaticFi...原创 2020-01-14 17:56:37 · 1260 阅读 · 0 评论 -
为jsoncpp添加Android版本Makefile
jsoncpp是json众多C++库的一种,Android源码中就是采用它来做json解析和封装的。目录树简单说明.├── doc 文档存放位置├── include/json 对外提供的头文件,就是基于此头文件做开发的├── README.md 此库最详细的说明├── scons-tools scons工具,我没用过不做说明├── src/lib_json jsoncpp的核心代码├─原创 2015-11-27 18:16:38 · 2177 阅读 · 2 评论 -
Android命令之ps
Android系统基本都会内置ps命令,通过ps命令我们能简单的了解相应进程的stat。 源码在system/core/toolbox/ps.c 选项 解释 -t 显示所有线程的信息 -n 显示数字UID -Z 显示mac label,此选择是和其他选项对立的 -P 显示进程策略,存在三种策略fg、bg、空白 -p 对应的是prio, nice, rt原创 2016-03-23 14:40:31 · 3096 阅读 · 1 评论 -
ndk-stack的使用
ndk-stack官方资料ndk-stackAndroid NDK提供了一个用于”翻译”Crash堆栈信息所对应的具体源文件和行号的工具–ndk-stack。它是一个二进制程序,位于NDK根目录下。“翻译”即把对应的地址转换为源文件和对应的行号,ndk同时编译出release和debug版本的库,#PROJECT_PATH/libs是release版本的库,$PROJECT_PATH/obj是deb原创 2016-03-14 20:11:03 · 3376 阅读 · 0 评论 -
adb offline 解决
在安装了某一次驱动后,就出现了adb连不上设备的情况,一直都是offline状态。无效尝试重启设备,无效,重启之后还是连不上重置设备,无效,重置之后还是连不上查找5037端口是否被占用,通过netstat -nao | findstr "5037"查找发现端口没有被占用重启adb,adb重启之后还是没有办法连上删除$HOME目录下的.android目录,第一次使用eclipse的时候能够连原创 2016-07-05 21:06:44 · 4875 阅读 · 0 评论 -
protobuf android ndk makefile
直接把BUILD的内容拿来重新组织一下而已Application.mkAPP_ABI := armeabi-v7a #(32_bit(armeabi armeabi-v7a x86 mips), 64_bit(arm64-v8a x86_64 mips64))APP_PLATFORM := android-9 # "2.3" (3~25)APP_STL原创 2017-02-27 12:05:12 · 1092 阅读 · 0 评论 -
Android NDK下载(r10~ r26d) 持续更新
鉴于有些人不能上官网,所以复制下来给需要的人。r10d[Windows]http://dl.google.com/android/ndk/android-ndk-r10d-windows-x86.exehttp://dl.google.com/android/ndk/android-ndk-r10d-windows-x86_64.exe[Mac OS X]http://dl.google.原创 2017-06-29 14:30:23 · 44011 阅读 · 11 评论 -
jni: bad arguments passed to 错误
最近遇到了一个bad arguments passed to的崩溃,这个是art那边的打印reflection.cc#434,在参数解析的时候出现了问题,是参数不对导致的。结合上一个log就能快速知道具体是那个参数的类型不对。参数无法解析LOG(ERROR) << "Internal error: unresolvable type for argument type in JNI invoke原创 2017-09-14 14:01:44 · 1748 阅读 · 0 评论 -
findclass
findclass在Android平台中只允许在主线程(UI)中使用,所以我们要在其他线程中使用只能一次性findclass所有的class,并生成一个Global的引用。这样我们就可以在其他线程(如果是非Java线程,需要AttachCurrentThread一下)使用找个class的全局引用了。ClassReferenceHolderWebRTC封装的一个类,可以拿出来在其他地方使用。...原创 2019-01-30 10:54:21 · 1066 阅读 · 0 评论 -
Android adb多设备管理
由于开发机中总是同时连着好几个设备,而我们的设备大部都有着相同的名字,而且我们可能同时操作着好几个设备,为了解决这个问题写了个shell脚本对这些设备进行管理,方便开发。功能简介: 1. 如果存在默认连接设备(ANDROID_SERIAL),并且该设备存在那么就使用该设备,否则就从已经存在的设备选择一个。 2. 为okadb添加了自动补全的功能,仅仅添加了几个我常用的。 3. 整合一些常用的功原创 2015-10-29 10:14:11 · 1752 阅读 · 0 评论 -
Android 4.4自带屏幕录制命令screenrecord ,去掉180s限制
原始命令默认支持的最长录制时间为180s,如果希望短一点可以如下设置(60s)。基于Android4.4.2_r1源码修改的限制,在4.4.2下能够正常使用,其他平台未测试,默认最长录制时间是(180000s ,50个小时),同样可以限制时间原创 2014-12-27 16:21:37 · 4187 阅读 · 4 评论 -
Android logcat分析
logcat是Android自带的一个查看log的命令,它从/dev/log/events、/dev/log/main、/dev/log/radio和/dev/log/system这些字符设备读取log信息,Android系统也会把log信息分为这四类分别保存在以上四种类型的字符设备中,这些字符设备使用一个环形buffer保存log信息,buffer大小都是256Kb。logcat的意义在于可以有原创 2014-12-29 00:03:05 · 1429 阅读 · 0 评论 -
在Eclipse查看Android Java源码
1. 查看Android标准SDK源码--官方路线标准SDK源码其实就是android.jar包中的源码,这个是有版本之分的(API 19、18、17、16等),我们仅仅需要下载相应版本的即可,我个人推荐直接下载最新的版本,目前我使用的SDK中最新版本为19,也就是Android4.4。下载使用流程:打开Eclipse -> Android SDK Manager ->原创 2014-12-29 13:15:15 · 975 阅读 · 0 评论 -
Google Nexus设备刷机
测试环境刷机机 :FUJITSU LH532刷机系统:Windows 7 64bit手机 :Nexus 7 Wifi 16G nakasi手机系统:Android 4.1.2 (原生)目标系统:Android 4.4.2(因为我们的测试需求为4.4.2)网络 :能够翻墙的网络1. 下载手机驱动并安装谷歌官方手原创 2015-01-24 12:21:15 · 1227 阅读 · 0 评论 -
NDK toolchain对应ABI
Android NDK: This NDK supports the following toolchains and target ABIs:Android NDK: aarch64-linux-android-4.9: arm64-v8aAndroid NDK: aarch64-linux-android-clang3.4: arm64-v8aAndroid ND原创 2015-04-11 16:18:37 · 3706 阅读 · 0 评论 -
Android atomic
在platform21之前都能够好好的使用一下这两个函数,用于原子操作的加减。但是当使用platform21时这里发生了一点变化,头文件sys/atomics.h也去掉了,改为stdatomic.h。__atomic_dec(void *)__atomic_inc(void *)常用的这两个接口也改为更加灵活的方式:__sync_fetch_and_add(vo原创 2015-04-28 16:20:10 · 3010 阅读 · 0 评论 -
MemLeak学习笔记
今天在手机上测试一个程序的时候无意间发现了一个kernel进程kmemleak,于是就认识了memleak。内存泄露是一个很严重的问题,特别是移动平台上面的开发,如果内存泄露不严重那么查起来的难度将会加大,有了这个小tool对我们的开发或多或少有些帮助。关于MemLeak官方她自己已经描述得很清楚了,MemLeak -- a module to debug memory lea原创 2015-05-04 21:36:19 · 3482 阅读 · 0 评论 -
Linux下adb不能识别Android设备
在Linux中使用adb一直都很顺利,直到前天遇到了小米平板,怎么都没有办法识别,按照google官方http://developer.android.com/tools/device.html的说法去做了,但是还是一点效果都没有,偶然间看到这个帖子http://blog.csdn.net/liuqz2009/article/details/7942569才解决的问题。解决办法是在$HOME/原创 2015-05-14 21:41:02 · 2004 阅读 · 0 评论 -
Mac os Android开发环境搭建-macports、ndk、sdk、Android源码
第一次使用mac os,第一件事就是搭建环境。由于长期使用Windows+Xshell式的开发模式,所以mac os很容易上手。我主要是在家里使用它来捣鼓一些东西,工作之余可以写一些东西。刚刚开始有一些地方还不是很适应,因为moc os是基于unix的os,所以很多命令都比较规范,不能像linux那样随意,这就导致了我写的一些脚本运行起来有点问题。为了能很好的适配Mac os和Linux系原创 2015-06-07 00:02:47 · 2120 阅读 · 0 评论 -
HAL code debug
直接使用HAL层接口做编解码时需要在hardware/qcom/media位置编译(这里以qcom为例),因为这里作为media部分的入口位置,需要编译那些Android.mk在这里决定,所以在此目录之下的所有目录都不会被包含。此处hardware/qcom/media/mm-video-v4l2/vidc是qcon HAL层编解码的位置,qcon HAL层中提供了原创 2015-05-20 23:59:10 · 1596 阅读 · 0 评论 -
JNI编程注意事项
我会把Java native方法对应的c/c++方法简称为jni方法。1. Jni接口的调用可以分为c和c++两种方式,但是c++的调用方式最终也都是调用c接口,不过通过查看源码知道jni提供出来的c接口却是用c++实现的(android-4.4.2_r1/art/runtime/jni_internal.cc)。// c(*env)->NewStringUTF(e原创 2015-01-24 14:04:57 · 905 阅读 · 0 评论