5

我正在编写一个 Android 应用程序来测试网络性能,我想在应用程序中使用 iPerf。我可以找到已经为 Android 编译的二进制 iPerf 文件(然后我可以在手机上运行 iPerf 并收集它的输出),但我有兴趣自己编译这些文件。

在这里,有人提出了可以用来编译程序的脚本:http: //sourceforge.net/tracker/index.php ?func=detail&aid=3533374&group_id=128336&atid=711373

我知道它需要 NDK,但我不知道从哪里开始。是否有任何好的资源或建议可以帮助指导我自己编译它(在 Windows 上,但我也有 Cygwin)。我知道 C 以及如何在 linux 上使用 GCC,但我不知道从哪里开始。

提前感谢您的帮助!

4

2 回答 2

2

这是关于开始使用 NDK 的一个很好的讨论。

https://stackoverflow.com/questions/5375453/looking-for-a-good-tutorial-on-android-ndk

如果您完成本教程,您将构建自己的 NDK “Hello, World” 类型的应用程序。这很简单,但它会帮助您了解 NDK。

这是教程的直接链接:http: //mobile.tutsplus.com/tutorials/android/ndk-tutorial/

于 2012-06-25T21:57:38.803 回答
0

在 Iperf3 上工作

    #!/bin/sh
wget https://dl.google.com/android/repository/android-ndk-r18-linux-x86_64.zip
sudo apt-get install unzip
unzip android-ndk-r18-linux-x86_64.zip
#--arch arm or arm64 https://developer.android.com/ndk/guides/standalone_toolchain
android-ndk-r18/build/tools/make_standalone_toolchain.py --arch arm --api 26 --install-dir=my-toolchain
# Add the standalone toolchain to the search path.
export PATH=$PATH:`pwd`/my-toolchain/bin

# Tell configure what tools to use. aarch64-linux-android
target_host=arm-linux-androideabi #aarch64-linux-android or arm-linux-androideabi
export AR=$target_host-ar
export AS=$target_host-clang
export CC=$target_host-clang
export CXX=$target_host-clang++
export LD=$target_host-ld
export STRIP=$target_host-strip

# Tell configure what flags Android requires.
export CFLAGS="-fPIE -fPIC"
export LDFLAGS="-pie"
sudo apt-get install build-essential git
git clone https://github.com/esnet/iperf
cd iperf/
echo manual edit src/iperf_api.c change to char template[] = "/data/local/tmp/iperf3.XXXXXX";

#--disable-profiling or edit src/Makefile.in deleting "-pg" from iperf3_profile_CFLAGS and iperf3_profile_LDFLAGS
#./configure --host=arm-linux-androideabi CFLAGS=-static CXXFLAGS=-static --disable-profiling 
#make

##iperf2
#sudo apt-get install autotools-dev
#cp /usr/share/misc/config.{sub,guess} .

#adb push src/iperf3 /data/local/tmp
#adb shell chmod 755 /data/local/tmp/iperf3
#adb shell "/data/local/tmp/iperf3 -v"
于 2018-10-07T11:43:00.593 回答