- 浏览: 523131 次
- 性别:
- 来自: 广州
-
文章分类
最新评论
-
lin_kk:
最近正在学,请问LZ有源码事例吗,如果有能发一下我邮箱吗,万分 ...
使用libgdx及其中的box2d 2.1的注意事项 -
ahong520:
编译都通不过
ffmpeg对音频解码的一般步骤 -
辽东小小:
yajun_soft 写道XXX@XXX:~$ adb she ...
adb push的Permission denied -
cdtdx:
好文, 相当不错啊. 收了.
什么是app2sd,app2ext,data2ext?app移动到SD卡哪里去了? /mnt/asec /mnt/secure -
dickycat:
学习了,最近正在学这一块,年纪大了,学起来有点吃亏!
使用libgdx及其中的box2d 2.1的注意事项
1、ndk 编译程序 helloworld –Application.mk –project –jni –Android.mk –helloworld.c Application.mk: Android.mk: helloworld.c 在NDK_ROOT/apps/helloworld/project/libs/armeabi/目录有生成了“helloworld”可执行程序。到这里编译已经完成了。 cd NDK_ROOT/apps/helloworld/project/libs/armeabi adb push /data/helloworld adb shell chmod 777 /data/helloworld/helloworld /data/helloworld/helloworld 如果没有权限问题,这里就OK了. 如果用windows cmd命令行下使用adb连接虚拟机会有权限问题,;我试着在 虚拟机上/Dev Tools/Terminal Emulator上用命令执行,也没有权限执行程序.可能只有cygwin使用的是root吧. 2、用传统交叉编译方式--也可以 * 在ubuntu 或标准linux下下载arm交叉编译工具 http://www.codesourcery.com/sgpp/lite/arm/portal/subscription?@template=lite 这个自己.做吧,别忘记export * 编码,文件结构如下 --test Makefile include --pchar.h src --main.c --pchar.c 代码分别如下: //*********************************************main.c***********************************/ /* int main(int argc,char *argv[]) //void _start(int argc, char **argv) { exit( main(argc, argv) ); } //*********************************************pchar.c***********************************/ #include "pchar.h" //*********************************************pchar.h***********************************/ #include <stdio.h> //*********************************************Makefile***********************************/ CC= arm-none-linux-gnueabi-gcc all:$(EXE) #CFLAGS= -Wall -O2 #LIB = -static -llib #LIBPATH = -L./lib LIB = -static $(EXE):./src/*.c clean: ***************************************************************************************************************** 注:-static一定要有. ok .. make 就可以了, $file test 查看一下生成的可执行文件是不是arm 下,static的. -static选项在这里是必须的,不然android平台就不运行此程序。 这也说明了此平台上的C/C++库是不能被 C/C++程序动态连接的 。 进入tools目录,用adb工具下载到android平台,放到/data/data目录。 [cmz@KD1 jni]$ file test 将生成的文件按(1)传入到虚拟机运行.就可以看到了. 3、ffmpeg移植到android.可以说用上面同样的方法。只是注意,要staitc的方式编译将生成的bin/ffmpeg二进制文件 ,传到虚拟机。 移到板子上 ffmpeg -i test.avs test.yuv test.avs为测试文件. 上面的应用程序在编译时必须加上-static选项,也就是在编译时将函数都静态编译到程序中了,运行时不用再动态连接。如果不加此选项,在 android平台上就不让运行。 经过测试,将自己写的库放到/system/lib目录下,然后写个主程序来动态连接,也是无法运行。 看来此平台做了限制,不让C/C++的程序运行时动态连接到这些C/C++库。
* Copyright (C) 2009 The Android Open Source Project
*
mu maytures -- two test function
*
*/
//#include <stdio.h>
#include "pchar.h"
{
printf("===begin=!\n");
pchar();
printf("===end=!\n");
return 0;
}
int pchar()
{
printf("I'm char.=!\n");
return 0;
}
int pchar();
EXE=test
INCLUDE = -I ./include
# $(CROSS_COMPILE)gcc -o $@ hello.c
$(CC) ./src/*.c -o $@ $(INCLUDE) $(LIB)
rm -rf test
test: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.6.14, statically linked, for GNU/Linux 2.6.14, not stripped
发表评论
-
编译XT720 gingerbread
2013-05-04 11:18 881在android根目录下执行". build/env ... -
编译mx 内核成功
2013-03-18 17:48 903转 : http://hi.baidu.com/_xi ... -
ubuntu下面找不到ZTE V880设备
2012-12-06 16:22 870两种方法:第一种方法是你连上你的手机,重启电脑,再adb de ... -
Android中解决图像解码导致的OOM问题
2012-10-01 18:41 837http://7dot9.com/2011/08/androi ... -
编译Android下纯C的静态程序,undefined reference to raise
2012-07-08 23:28 2413尝试在Android下编译纯C的静态程序,执行gcc -v - ... -
开发Android下纯C程序时,打开时提示not found
2012-07-08 20:09 1411这个问题烦了我一天了..郁闷.本人想试验一下使用ndk里面的t ... -
NDK报错:make: *** 没有规则可以创建“obj/local/armeabi/objs/a/a.o”需要的目标“/a.c”。 停止。
2012-07-05 21:02 2197android开发用ndk编译so库时,有时直接从别的地 ... -
adb push的Permission denied
2012-05-30 17:19 3700遇到的问题是 zhanglanyun@zhanglan ... -
adb pull失败问题解决方法
2012-05-30 17:03 2230问题:使用adb pull命令从android系统中读取文件失 ... -
关于app2sd、a2sd、data2sd、a2sd+的区别的解释
2012-05-17 11:47 1101因为看到很多机友对这个概念不理解。首先解释一下这些缩写,全部的 ... -
什么是app2sd,app2ext,data2ext?app移动到SD卡哪里去了? /mnt/asec /mnt/secure
2012-05-17 10:56 3388Google Android手机的软件为了安全性和稳定性 ... -
android 如何自定义ProgressBar
2012-04-22 15:39 1930原文:http://blog.sina.com.cn/s/bl ... -
修改MAC,没有nvs_map.bin时该怎么做
2012-04-10 16:53 1853Basically: nvs_map.bin is what ... -
Android Activity LaunchMode 验证
2012-03-31 11:23 944在Android中,每个Activity有4种LaunchMo ... -
Android改变MAC地址
2012-03-30 13:42 21931.Find out your original MAC ad ... -
C通过JNI 层调用Java的静态和非静态方法
2012-03-26 09:47 39821、主要流程 1、 新建一个测试类TestProv ... -
android-ndk-r7 编译 ffmpeg-0.10
2012-03-18 21:46 4620看了这篇文章 http://blog.sina.com ... -
android2.3 MODIFY_PHONE_STATE
2012-02-27 22:14 3090一直被一些莫名其妙的电话骚扰,而且只响两声就断了,一直 ... -
Androidmanifest.xml里的<uses-feature>
2011-12-27 17:10 1393如果你是一个Android用户,而且你有一个老旧的安装有and ... -
android程序中取得root
2011-10-25 19:42 1079public static boolean runRootCo ...
相关推荐
本文将详细介绍如何在Linux系统下使用NDK编译FFmpeg,并生成适用于Android的.so库。主要涉及的知识点包括: 1. **FFmpeg框架**:FFmpeg提供了多种音视频编解码器,如H.264、AAC等,以及各种格式的容器支持,如MP4、...
综上所述,"ubuntu下 编译 ffmpeg for Android armv7-a armv8-a"涉及到的知识点包括Ubuntu环境、FFmpeg项目、Android架构、交叉编译、NDK、配置脚本以及硬件加速等。通过这样的编译过程,我们可以创建针对Android...
下面我们将详细讨论如何在Linux上交叉编译FFmpeg,特别是gltransition模块,以便生成适用于Android的动态链接库(.so)和静态链接库(.a)文件。 首先,确保你的开发环境已经配置了交叉编译工具链,例如Android NDK...
交叉编译FFmpeg的过程涉及以下步骤: 1. **配置环境**:首先,你需要安装Android NDK并设置好环境变量,如ANDROID_NDK_ROOT。然后,安装msys2和mingw64,确保拥有合适的编译工具。 2. **获取FFmpeg源码**:从...
总的来说,成功编译FFmpeg 0.6 for Android需要对Android NDK、交叉编译、JNI以及FFmpeg自身有深入理解。通过以上步骤,我们可以将FFmpeg集成到Android应用中,实现音视频的处理和播放功能。文件名`JNI_FFmpeg`可能...
FFmpeg是一款开源的跨平台多媒体处理...总结,NDK开发FFmpeg涉及到Linux下的编译、Android的移植以及音视频处理命令行的使用。通过以上步骤,开发者可以将FFmpeg集成到Android应用中,实现高效且灵活的音视频处理功能。
NDK是开发Android原生代码所必需的,它提供了交叉编译工具链和必要的库。 2. **获取FFmpeg源码**:从FFmpeg的官方仓库克隆源码,通常使用`git clone https://github.com/FFmpeg/FFmpeg.git`。 3. **配置编译选项**...
本文将详细探讨FFmpeg在Android环境下使用NDK的编译目录结构以及`Android.mk`文件的配置。 首先,让我们理解FFmpeg的编译目录结构。在Android NDK开发中,项目通常遵循以下结构: 1. **jni**:这是Android NDK项目...
1. **配置FFmpeg**:使用`./configure`命令,添加`--target-os=android`参数,并指定Android交叉编译工具链路径,例如: ``` ./configure --prefix=/path/to/output --target-os=android --arch=armv7a --cpu=...
例如,为了生成Android版本的库,开发者需要使用NDK交叉编译,并指定正确的ABI(Application Binary Interface)。 3. **Linux动态链接库与静态链接库** 动态链接库(.so文件)在运行时被加载到进程内存中,多个...
对于Android平台,还需要安装NDK(Native Development Kit),用于交叉编译。 2. **配置FFmpeg**: 使用`./configure`命令进行配置,这是一个非常关键的步骤,因为它会根据指定的参数来决定FFmpeg的功能和编译方式...
2. **配置环境**:设置Cygwin的路径变量,确保能访问到NDK的交叉编译工具链,同时配置NDK的路径。 3. **配置FFmpeg**:使用`./configure`命令进行FFmpeg的配置,指定目标平台为Android,例如: ``` ./configure -...
2. **交叉编译**: 由于Android设备使用的是不同于桌面系统的Linux变体,所以需要使用交叉编译工具链来构建.so文件。这通常涉及到设置NDK(Native Development Kit)环境,并使用NDK的`ndk-build`或CMake来编译。 3....
总结,编译FFmpeg Android arm64版涉及的知识点包括:FFmpeg框架、Android NDK、交叉编译、配置构建选项、JNI接口、CMakeLists语法、Android权限管理和多媒体处理。通过这个过程,开发者可以为Android设备构建高效的...
通常,开发者会在Linux环境下编译FFmpeg,因为它的编译工具链和Android的交叉编译环境更为兼容。这里的编译过程可能包括了配置选项,如选择特定的编解码器、过滤器和协议,以满足Android平台的需求。 标签“Android...
交叉编译意味着在一种环境下(通常是Linux)编译代码,以在另一种不同的目标环境(这里是Android设备)上运行。以下将详细介绍这个过程。 1. **交叉编译环境设置** - 首先,你需要一个装有Linux操作系统的主机,...
3. **交叉编译**:NDK包含了一系列的交叉编译工具链,使得开发者可以在Linux主机上编译出针对不同Android架构(如armeabi-v7a, arm64-v8a, x86, x86_64等)的原生库。 4. **性能优化**:对于计算密集型或资源敏感的...
在Android应用开发中,NDK扮演着至关重要的角色,它允许开发者使用原生代码(如C和C++)来编写部分应用,以提升性能或利用特定硬件功能。 NDK的主要用途包括: 1. **性能优化**:对于计算密集型任务,如图形处理、...
总之,ijkplayer 和 ffmpeg 在 Android 上的独立编译是一个涉及多步配置和编译的过程,需要对 Android NDK、交叉编译以及 ffmpeg 的内部结构有深入的理解。通过这个过程,开发者可以创建出适合自己应用的定制化版本...