此page个文件运行旧版本(1.8.4)的mercurial,但说
"(以后的版本需要一个名为grp的无法使用的python模块)"
答案 0 :(得分:2)
这是我使用 mercurial 3.7.3 <使用Ubuntu 16.04计算机和运行在Windows 7上的intel 64位android模拟器的方式(但我仍然有兴趣听到其他方法) / p>
将python复制到Android设备上的应用程序文件目录(因此可以执行)
Windows主机上的adb push python279.x86_64 / sdcard
adb -e shell
在Android设备上cd / data / user / 0 / $ SOMEAPPDIR / files
cp -Rav /scard/python279.x86_64。
chmod + x python279.x86_64 / bin / python2.7
export LD_LIBRARY_PATH = / data / user / 0 / $ SOMEAPPDIR / files / python279.x86_64 / lib
export LD_PRELOAD = libffi.so:libbz2.so
export PATH = $ PATH:/data/user/0/$SOMEAPPDIR/files/python279.x86_64/bin
Python现在应该能够使用python2.7
运行在Ubuntu主机上构建mercurial。
download mercurial 3.7.3
uz mercurial-3.7.3.tar.gz
cd mercurial-3.7.3&amp;&amp;全部
HOME = $ PWD / dist make install
进行微小修改
cd dist / mercurial-3.7.3 / dist / lib / python / mercurial
rm * .so
cp pure / * .py。
编辑posix.py并删除&#34;导入grp&#34;线。
将mercurial复制到Android设备
Windows主机上的adb push dist / sdcard
adb -e shell
在Android设备上cd / data / user / 0 / $ SOMEAPPDIR / files
cp / sdcard / dist。
alias hg =&#39; python2.7 / data / user / 0 / $ SOMEAPPDIR / files / dist / bin / hg&#39;
现在可以在Android设备上使用Hg。
甚至可以克隆远程回购,但我还必须通过--insecure
标记来绕过ssl错误。
答案 1 :(得分:0)
“ 17年2月15日”的答案很好,但是有一个很大的缺点。 该答案解决了此缺点,并打算与先前的答案结合使用。
此过程:
rm *.so
cp pure/*.py .
删除本机库,并使用这些库的python'pure'实现。在使用大型存储库时,尤其在较慢的android设备上,这会导致严重的性能问题。
与android ndk交叉编译Mercurial,产生可在android上使用的本机库。
我已经在mercurial 4.8.2 fork中添加了一些帮助脚本,以使交叉编译更加容易。
Linux说明:
克隆存储库
hg clone https://bitbucket.org/hindlemail/hg-stable-android/
更新为331892efe015
hg update -r 331892efe015
使用适当的值为环境变量设置这些值:
ANDROID_NDK="$HOME/Android/android-ndk-r13b"
ARCH="armeabi"
PLATFORM="android-22"
(有关更多信息,请参见17年2月15日的答案)
PYTHONDIR="/usr/local/android/install/python279.arm22"
运行crosscompile.sh