幸运快三 > 数码 > android

freerdp android 编译&freerdp的android客户端编译

freerdp的android客户端编译,freerd的adroid客户端现在已经可以通过网关了,而且添加了RemoteA的功能,编译步骤比较繁杂,对于以后的开发,十分有帮助,如果有什么问题,欢迎交流

freerdp的android客户端现在已经可以通过网关了,而且添加了RemoteApp的功能,编译步骤比较繁杂,对于以后的开发,十分有帮助,如果有什么问题,欢迎交流

freerdp的android客户端编译步骤阅读
freerdp的android客户端编译步骤阅读

工具/原料

  • Cmake version>=2.8
  • SDK version>=21
  • NDK version>=r9
  • Android-external-openssl-ndk-static
  • Adt-bundle-linux-x86_64

方法/步骤

  1. 1

    下载,编译,安装cmake

    wget ...(不让输入,自己搜资源吧)

    解压

    tar zxvf cmake-3.0.2.tar.gz

    cd cmake-3.0.2

    编译 安装

    ./configure –prefix=/usr/local/cmake

    gmake

    su – (需要root权限)

    make && make install

    添加cmake的环境变量

    export PATH=$PATH:/usr/local/cmake/bin

  2. 2

    下载,编译,安装 openssl (安装之前检测系统是否已经安装openssl,安装了就不要再安装了)

    wget ...(不让输入,自己搜资源吧)

    解压

    tar xvf openssl-1.0.1j.tar.gz

    编译 安装

    cd openssl-1.0.1j.tar.gz

    ./config  (可能是 ./configure 视情况而定)

    make && make install  (su – 需要root权限)

    添加环境变量

    export OPENSSL_ROOT_DIR=/usr/local/ssl

    export OPENSSL_LIBRARIES=/usr/local/ssl/lib

    export OPENSSL_INCLUDE_DIR=/usr/local/ssl/include

    PATH=$OPENSSL_ROOT_DIR/bin:$OPENSSL_LIBRARIES:$OPENSSL_INCLUDE_DIR:$PATH

    export PATH

  3. 3

    下载并设置SDK的环境变量 (免安装,直接解压到/usr/local)

    export ANDROID_HOME=/usr/local/sdk

    export ANDROID_SDK=/usr/local/sdk

    export PATH=$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools:$PATH

  4. 4

    下载并设置NDK的环境变量 (免安装,直接解压到/usr/local)

    export NDK=/usr/local/ndk

    export ANDROID_NDK=$NDK

    export PATH=$PATH:$ANDROID_NDK

  5. 5

    下载Android-external-openssl-ndk-static 并编译(NDK已经安装并且设置好环境变量)

    进入Android-external-openssl-ndk-static 目录,输入一下命令进行编译

    ndk-build

    如果在此目录下生成libs说明编译完成。

  6. 6

    下载Adt-bundle-linux-x86_64-20140702(免安装)并解压,生成快捷文件

    ln –s /usr/local/eclipse/eclipse /root/Desktop/eclipse

  7. 7

    FreeRDP下载编译生成eclispe下的android工程

    下载freeRDP

    wget (不让输入,自己搜资源吧)

    解压

    tar xvf FreeRDP-master

    cd FreeRDP-master

    下面简单说说编译的过程。这个是需要用到cmake来编译

    资料参考(http://www.devdiv.com/forum.php?mod=viewthread&tid=195853,注:这个已经是老版本的编译教程。新版本有一些不同)

    可以看一下docs里的README.android文件。这里面详细的描述了如何编译android的客户端。大概有三种方法。

    1)直接用cmake编译出apk文件。

    2)用cmake编译出ant脚本,然后用ant命令来编译apk。

    3)用cmake只编译libfreerdp-android.so。然后导入eclipse中来生产apk。

    实际开发中用第三种比较多。一般都是改动jni代码后手动编译so库然后使用eclipse来调试java代码。

    因为android版本的rdp协议都是基于freerdp的代码的。而freerdp需要以来openssl库。所以首先需要编译android-external-openssl-ndk-static。下载地址https://github.com/bmiklautz/android-external-openssl-ndk-static(前面已经编译)

    这个是一个ndk的工程。需要Android NDK (>= r9),下载完后配置好ndk的环境变量。进入cd android-external-openssl-ndk-static,然后ndk-build,编译完生成静态库。如下图:   3.然后是在freerdp的根目录使用android的keychain来编译整个项目生成so动态库。根据文档终提供的编译命令如下: cmake -DCMAKE_TOOLCHAIN_FILE=cmake/AndroidToolchainNaNake \ -DANDROID_NDK="_your_ndk_path_here_" \ -DFREERDP_ANDROID_EXTERNAL_SSL_PATH="_your_ssl_build_root_path_" \ -DANDROID_BUILD_JAVA=OFF "_your_ndk_path_here_"就是你的ndk的路径,写绝对路径。 "_your_ssl_build_root_path_"这个就是第3步里编译出来的android-external-openssl-ndk-static的路径, 最后环境下替换后的编译命令如下:

    cmake -DCMAKE_TOOLCHAIN_FILE=cmake/AndroidToolchainNaNake -DCMAKE_BUILD_TYPE=Debug -DPKG_CONFIG_EXECUTABLE="/usr/local/pkgconfig/bin" -DANDROID_NDK="/usr/local/ndk" -DFREERDP_EXTERNAL_SSL_PATH="/usr/local/android-external-openssl-ndk-static" -DANDROID_BUILD_JAVA=OFF –L

    (PKG_CONFIG_EXECUTABLE参数 防止缺少PKG_CONFIG_EXECUTABLE的错误) 执行完后会生成config文件,接着输入make开始编译。编译后会在FreeRDP/client/Android/libs/armeabi-v7a目录下生成libfreerdp-android.so动态库。

     

    到此就生成了Android的工程项目,现在完成了整个编译的一大半,这部分也是最容易出现问题的部分,只要这部分,没有错误的编译完成,基本上导入eclipse(bundle adt)就能生成我们想要的apk。

  8. 8

    Eclipse-bundle编译freerdp的android项目

    首先说一下,Eclispe-bundle对于没开发过android,可能很陌生。这个版本就是指的是eclipse + adt 绑定的版本,当然也可以使用eclispe然后自己配置adt,效果是一样的。(提示Eclipse-bundle是免安装的,使用前提是已经安装了JDK,SDK,NDK,NDK在本项目中是需要的,一般情况下是不需要的,并设置好环境变量)

    在上一环节在client/android目录线面会生成3个项目,分别是aFreeRDP,appcompat_v7, FreeRDPCore

    freerdp的android客户端编译步骤阅读
  9. 9

    导入这3个项目

    freerdp的android客户端编译步骤阅读
    freerdp的android客户端编译步骤阅读
    freerdp的android客户端编译步骤阅读
  10. 10

    设置三个项目需要的lib,其时这里只有aFreeRDP,FreeRDPCore需要设置lib

    freerdp的android客户端编译步骤阅读
    freerdp的android客户端编译步骤阅读
  11. 11

    设置三者项目的依赖

    freerdp的android客户端编译步骤阅读
    freerdp的android客户端编译步骤阅读
  12. 12

    在项目aFreeRDP上面右键选中运行,生成apk文件

    freerdp的android客户端编译步骤阅读
  13. 13

    测试

    android4.0

    令人欣慰的是,afreerdp可以设置网关,并启动RemoteApp

    freerdp的android客户端编译步骤阅读
    freerdp的android客户端编译步骤阅读
    END

注意事项

  • 第7步是最复杂的部分,大部分是因为依赖的关系,才会出现的错误,需要设置环境变量
  • SDK,NDK的环境变量一定得设置好

本文来自投稿,不代表幸运快三立场,转载请注明出处:http://www.morucat.com/digital/11662.html