环境:ubutnu 12.04,android SDK

1. 下载libmpg的一个android工程,得到一个Android-libmpg-master.zip。https://github.com/Nobleworks/Android-libmpg

2. 下载libmpg123源码,得到一个mpg123-1.15.4.tar.bz2。http://www.mpg123.org/

3. 将两个文件放到安卓工程目录下,目前是 /home/gong/android/workspace/。分别解压到此处。
    现在的目录结构是workspace/下多两个文件夹 mpg123-1.15.4 和 Android-libmpg-master

4. 把目录/home/gong/android/workspace/mpg123-1.15.4/src/libmpg123/里面的所有文件拷贝到
    /home/gong/android/workspace/Android-libmpg-master/Android-libmpg/jni/libmpg123/

5. Android-libmpg-master/Android-libmpg/src/nobleworks/libmpg文件夹下有三个 .java文件。
    Feature.java MP3Decoder.java Encoding.java
    在src目录下使用javac命令,生成对应的class文件;使用javah命令,生成对应的.h文件。
    (注:javac 和 javah 命令必须在包外面操作)
    gong@gong-virtual-machine:~/android/workspace/Android-libmpg-master/Android-libmpg/src$ javac nobleworks/libmpg/MP3Decoder.java
    gong@gong-virtual-machine:~/android/workspace/Android-libmpg-master/Android-libmpg/src$ javah nobleworks.libmpg.MP3Decoder
    gong@gong-virtual-machine:~/android/workspace/Android-libmpg-master/Android-libmpg/src$ javac nobleworks/libmpg/Feature.java
    gong@gong-virtual-machine:~/android/workspace/Android-libmpg-master/Android-libmpg/src$ javah nobleworks.libmpg.Feature
    gong@gong-virtual-machine:~/android/workspace/Android-libmpg-master/Android-libmpg/src$ javac nobleworks/libmpg/Encoding.java
    gong@gong-virtual-machine:~/android/workspace/Android-libmpg-master/Android-libmpg/src$ javah nobleworks.libmpg.Encoding
   执行完后,会在src目录下生成7个.h文件。
    nobleworks_libmpg_Encoding_Format.h
    nobleworks_libmpg_Encoding.h
    nobleworks_libmpg_Encoding_Ordinals.h
    nobleworks_libmpg_Feature.h
    nobleworks_libmpg_MP3Decoder_Error.h
    nobleworks_libmpg_MP3Decoder_Flags.h
    nobleworks_libmpg_MP3Decoder.h

6. 修改jni/MP3Decoder.cpp,将前面几行的include 路径修改为刚刚生成的.h文件。
#include "../src/nobleworks_libmpg_MP3Decoder.h"
#include "../src/nobleworks_libmpg_MP3Decoder_Error.h"
#include "../src/nobleworks_libmpg_Feature.h"
#include "../src/nobleworks_libmpg_Encoding_Ordinals.h"

7. 在jni目录下 执行 ndk-build。就会生成libs/armeabi-v7a/libmpg.so和libs/armeabi/libmpg.so

编译android版libmpg的更多相关文章

  1. 用travis-ci编译android版nodejs

    第一步: fork 第二步: 添加.travis.yml 在repository根目录添加.travis.yml文件,在其中添加以下内容. language: c before_install: - ...

  2. 转:Android开发实践:用脚本编译Android工程

    转自: http://ticktick.blog.51cto.com/823160/1365947 一般情况下,我们都是使用Eclipse+ADT插件或者Android studio软件来编译Andr ...

  3. [转]编译Android源代码常见错误解决办法

    1. 编译时出现/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libz.so when ...

  4. JDK版本更换后编译android系统出错

    一:javac: 目标发行版 1.5 与默认的源发行版 1.7 冲突 1.设置jdk环境变量 编译android源码只支持jdk 1.6,所以如果需要编译源码必须下载jdk 1.6,不能下载最新的jd ...

  5. 【转】在Ubuntu下编译Android源码并运行Emulator

    原文网址:http://www.mcuos.com/thread-4553-1-1.html 建立编译环境 1.在VirtualBox上安装Ubuntu 2.安装JDK   $ sudo apt-ge ...

  6. 【转】Ubuntu10.04上编译Android源码(Build Android source in Ubuntu10.04 Platform)

    原文网址:http://blog.csdn.net/chenyafei617/article/details/6570928 一.Introduction 今天我们就来谈谈如何在Ubuntu平台上面编 ...

  7. Android版xx助手之天天酷跑外挂具体分析

    Android版xx助手之天天酷跑外挂具体分析 图/文      莫灰灰 背景 近些年来,移动互联网的大肆崛起,潜移默化中影响着人们的生活和工作习惯.当腾讯的微信平台接入手机游戏之后,移动端的游戏也開 ...

  8. 微信5.0 Android版飞机大战破解无敌模式手记

    微信5.0 Android版飞机大战破解无敌模式手记 转载: http://www.blogjava.net/zh-weir/archive/2013/08/14/402821.html 微信5.0 ...

  9. 开发腾讯移动游戏平台SDK Android版Ane扩展 总结

    本文记录了在开发 腾讯移动游戏平台SDK(MSDK) Android版Ane扩展 过程中所遇到的问题和相关解决方式 问题一:编译报错:Unable to resolve target 'android ...

随机推荐

  1. Word分栏

    情景描述 Word分栏在小论文的撰写过程中是很常用的技术.但是,我们经常会遇到很难过的情况: 一段文字本来是连续分布的,可是当选择了分两栏         之后,开始部分在左边一栏,中间在右边一栏. ...

  2. Unity3d Shader开发(三)Pass(Blending )

    混合被用于制作透明物体. 当图像被渲染时,所有着色器被执行以后,所有贴图被应用后,像素将被写到屏幕.他们是如何通过Blend命令的控制和已有的图像合并呢? Syntax 语法 Blend Off Tu ...

  3. pscp实现Windows 和Linux 文件互相传输

    pscp 能够实现Windows 和Linux 间相互传输文件.下文将详细描述如何使用: 一.pscp 简要描述: PSCP (PuTTY Secure Copy client)是PuTTY 提供的文 ...

  4. CentOS挂载新硬盘

    1.查看当前硬盘使用状况: df -h root@VM_160_34_centos:~> df -h Filesystem Size Used Avail Use% Mounted on /de ...

  5. CQRS学习——IOC,配置,仓储隔离以及QueryEntry[其三]

    从IoC开始说起 博主最早开始用的IoC容器叫AutoFac,那时候用它主要是为了生命周期管理——将EF上下文的生命周期限定为每请求.当然也总是每每听到IoC的好处,但是仍然不能理解其优势.最近在学习 ...

  6. java代码整理---正则表达式

    1. 邮箱验证 : package javaRegx2016311; import java.util.regex.Matcher; import java.util.regex.Pattern; p ...

  7. MVC3中的路由系统(Routes)

    转载:http://blog.csdn.net/francislaw/article/details/7429317 MVC中,用户访问的地址并不映射到服务器中对应的文件,而是映射到对应Control ...

  8. Global中的事件执行顺序

    The Global.asax file, sometimes called the ASP.NET application file, provides a way to respond to ap ...

  9. HDU 1003 Max Sum(DP)

    点我看题目 题意 : 就是让你从一个数列中找连续的数字要求他们的和最大. 思路 : 往前加然后再判断一下就行. #include <iostream> #include<stdio. ...

  10. 【原创翻译】The Case for the Reduced Instruction Set Computer

    RISC机的例子 David A. Patterson 加州大学伯克利分校计算机科学系 David R. Ditzel 贝尔实验室计算科学研究中心 介绍 计算机体系结构最主要的目标之一就是设计比之前产 ...