Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mercurial如何在android上运行?_Android_Mercurial - Fatal编程技术网

mercurial如何在android上运行?

mercurial如何在android上运行?,android,mercurial,Android,Mercurial,本文档记录了运行mercurial的旧版本(1.8.4),但 “(更高版本需要名为grp的不可用python模块)” 这就是我使用Ubuntu 16.04机器和运行在Windows 7上的英特尔64位android仿真器(使用mercurial 3.7.3 使用Ubuntu系统,按照以下步骤创建能够运行hg的2.7版python 将python复制到android设备的app files目录中(以便可以执行) 在windows主机上 adb推送python279.x86_64/SD卡 亚洲开发银

本文档记录了运行mercurial的旧版本(1.8.4),但

“(更高版本需要名为grp的不可用python模块)”

这就是我使用Ubuntu 16.04机器和运行在Windows 7上的英特尔64位android仿真器(使用mercurial 3.7.3

  • 使用Ubuntu系统,按照以下步骤创建能够运行hg的2.7版python
  • 将python复制到android设备的app files目录中(以便可以执行)

    在windows主机上 adb推送python279.x86_64/SD卡

    亚洲开发银行-壳牌

    在android设备上 cd/data/user/0/$SOMEAPPDIR/files

    cp-Rav/scard/python279.x86_64

    使python变得可执行 chmod+x python279.x86_64/bin/python2.7

    设置使python在android上运行所需的一些环境变量 导出LD_LIBRARY_PATH=/data/user/0/$SOMEAPPDIR/files/python279.x86_64/lib

    导出LD_PRELOAD=libffi.so:libbz2.so

    导出路径=$PATH:/data/user/0/$SOMEAPPDIR/files/python279.x86_64/bin

  • Python现在应该能够与python2.7一起运行

  • 在Ubuntu主机上构建mercurial

    mercurial 3.7.3

    uz mercurial-3.7.3.tar.gz

    cd mercurial-3.7.3&全部制作

    主页=$PWD/地区制作安装

  • 稍作修改

    cd dist/mercurial-3.7.3/dist/lib/python/mercurial

    rm*.so

    cp pure/*.py

    编辑posix.py并删除“import grp”行

  • 将mercurial复制到android设备上

    在windows主机上 亚洲开发银行推送区/SD卡

    亚洲开发银行-壳牌

    在android设备上 cd/data/user/0/$SOMEAPPDIR/files

    cp/sdcard/dist

    别名hg使其易于使用 别名hg='python2.7/data/user/0/$SOMEAPPDIR/files/dist/bin/hg'

  • Hg现在应该可以在android设备上使用了

    甚至可以克隆远程repo,但我还必须传递
    --unsecure
    标志以绕过ssl错误

    在“2017年2月15日”做出的回答很好,但有一个相当大的缺点。 此答案解决了此缺点,并打算与前面的答案结合使用

    问题 本程序:

    rm *.so
    
    cp pure/*.py .
    
    删除本机库并使用这些库的python“pure”实现。在使用大型存储库时,这会导致严重的性能问题,尤其是在速度较慢的android设备上

    解决方案 mercurial与android ndk交叉编译,生成可在android上使用的本机库

    我已经向添加了一些帮助程序脚本,以使交叉编译更容易

    Linux说明:

  • 复制回购协议

    hg克隆https://bitbucket.org/hindlemail/hg-stable-android/

  • 更新至331892efe015

    hg更新-r 331892efe015

  • 为具有适当值的环境变量设置这些值:

    提供android NDK的位置
    ANDROID\u NDK=“$HOME/ANDROID/ANDROID-NDK-r13b”

    指定构建拱门-(armeabi、x86、x86_64、arm64)
    ARCH=“armeabi”

    指定目标android sdk verison
    PLATFORM=“android-22”

    指定交叉编译python的输出。 (更多信息请参见2017年2月15日的答案)

    PYTHONDIR=“/usr/local/android/install/python279.arm22”

  • 运行
    crosscompile.sh