Ubuntu Online, Fedora Online, Windows online emulator അല്ലെങ്കിൽ MAC OS ഓൺലൈൻ എമുലേറ്റർ എന്നിങ്ങനെയുള്ള ഞങ്ങളുടെ ഒന്നിലധികം സൗജന്യ ഓൺലൈൻ വർക്ക്സ്റ്റേഷനുകളിലൊന്ന് ഉപയോഗിച്ച് OnWorks സൗജന്യ ഹോസ്റ്റിംഗ് ദാതാവിൽ പ്രവർത്തിപ്പിക്കാൻ കഴിയുന്ന perlandroid കമാൻഡ് ആണിത്.
പട്ടിക:
NAME
perlandroid - Android-ന് കീഴിൽ പേൾ
സിനോപ്സിസ്
ഈ ഡോക്യുമെന്റിന്റെ ആദ്യ ഭാഗങ്ങളിൽ പേൾ ക്രോസ്-കംപൈൽ ചെയ്യുന്നതിനുള്ള നിർദ്ദേശങ്ങൾ അടങ്ങിയിരിക്കുന്നു
Android 2.0-ഉം അതിനുശേഷമുള്ളതും, Google നൽകുന്ന ബൈനറികൾ ഉപയോഗിക്കുന്നു. പിന്നീടുള്ള ഭാഗം
Play-യിൽ ലഭ്യമായ ടൂൾചെയിനുകളിൽ ഒന്ന് ഉപയോഗിച്ച് perl നേറ്റീവ് എങ്ങനെ നിർമ്മിക്കാമെന്ന് വിവരിക്കുന്നു
സംഭരിക്കുക.
വിവരണം
Perl നിർമ്മിക്കാൻ ശ്രമിക്കുമ്പോൾ നിങ്ങളുടെ ഹോസ്റ്റ് പരിസ്ഥിതി എങ്ങനെ സജ്ജീകരിക്കാമെന്ന് ഈ പ്രമാണം വിവരിക്കുന്നു
ആൻഡ്രോയിഡ്.
ക്രോസ്-കംപൈലേഷൻ
ഈ നിർദ്ദേശങ്ങൾ നിങ്ങളുടെ ഹോസ്റ്റ് സിസ്റ്റത്തിൽ ഒരു Unixish ബിൽഡ് എൻവയോൺമെന്റ് അനുമാനിക്കുന്നു; അവർ ഉണ്ടായിരുന്നു
Linux, OS X എന്നിവയിൽ പരീക്ഷിച്ചു, കൂടാതെ Cygwin, MSYS എന്നിവയിലും പ്രവർത്തിച്ചേക്കാം. ഗൂഗിൾ ഒരു നൽകുമ്പോൾ
Windows-നുള്ള NDK, ഈ ഘട്ടങ്ങൾ അവിടെ പ്രാദേശികമായി പ്രവർത്തിക്കില്ല, അത് സാധ്യമായേക്കാം
വ്യത്യസ്ത മാർഗങ്ങളിലൂടെ ക്രോസ്-കംപൈൽ ചെയ്യുക.
നിങ്ങളുടെ ഹോസ്റ്റ് സിസ്റ്റത്തിന്റെ ആർക്കിടെക്ചർ 32 ബിറ്റുകൾ ആണെങ്കിൽ, ചുവടെയുള്ള "x86_64" എന്നതിലേക്ക് മാറ്റാൻ ഓർക്കുക
"x86" കൾ. സമാനമായ ഒരു സിരയിൽ, ചുവടെയുള്ള ഉദാഹരണങ്ങൾ 4.8 ടൂൾചെയിൻ ഉപയോഗിക്കുന്നു; നിങ്ങൾക്ക് ഉപയോഗിക്കണമെങ്കിൽ
പഴയതോ പുതിയതോ ആയ എന്തെങ്കിലും (ഉദാഹരണത്തിന്, 4.4.3 ടൂൾചെയിൻ 8-ാം പുനരവലോകനത്തിൽ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്.
NDK), അവ പ്രസക്തമായ പതിപ്പിലേക്ക് മാറ്റുക.
നേടുക The ആൻഡ്രോയിഡ് തനതായ വികസനം കിറ്റ് (എൻ.ഡി.കെ.)
നിങ്ങൾക്ക് NDK ഡൗൺലോഡ് ചെയ്യാം .
നിങ്ങൾക്ക് സാധാരണ, നോൺ-ലെഗസി പതിപ്പ് വേണം.
നിർണ്ണയിക്കുക The വാസ്തുവിദ്യ നിങ്ങൾ ചെയ്യും be ക്രോസ്-കംപൈലിംഗ് വേണ്ടി
സാധ്യമായ മൂന്ന് ഓപ്ഷനുകൾ ഉണ്ട്: ARM-ന് arm-linux-androideabi, mipsel-linux-android
MIPS, കൂടാതെ x86-ന് x86. 2014-ലെ കണക്കനുസരിച്ച്, മിക്ക Android ഉപകരണങ്ങളും ARM-ലാണ് പ്രവർത്തിക്കുന്നത്
പൊതുവെ ഒരു സുരക്ഷിത പന്തയം.
അവ രണ്ടും കയ്യിൽ, നിങ്ങൾ ചേർക്കണം
$ANDROID_NDK/toolchains/$TARGETARCH-4.8/prebuilt/`uname | tr '[AZ]' '[az]'`-x86_64/bin
നിങ്ങളുടെ PATH-ലേക്ക്, $ANDROID_NDK എന്നത് നിങ്ങൾ NDK അൺപാക്ക് ചെയ്ത സ്ഥലമാണ്, കൂടാതെ
$TARGETARCH നിങ്ങളുടെ ടാർഗെറ്റിന്റെ വാസ്തുവിദ്യയാണ്.
ഗണം up a ഒറ്റയ്ക്ക് നിൽക്കുന്ന ടൂൾചെയിൻ
ഇത് പിന്നീട് കോൺഫിഗർ ചെയ്യാൻ ഫീഡ് ചെയ്യാൻ കഴിയുന്ന ഒരു വർക്കിംഗ് sysroot സൃഷ്ടിക്കുന്നു.
$ കയറ്റുമതി ANDROID_TOOLCHAIN=/tmp/my-toolchain-$TARGETARCH
$ കയറ്റുമതി SYSROOT=$ANDROID_TOOLCHAIN/sysroot
$ $ANDROID_NDK/build/tools/make-standalone-toolchain.sh \
--platform=android-9 \
--install-dir=$ANDROID_TOOLCHAIN \
--system=`uname | tr '[AZ]' '[az]'`-x86_64 \
--toolchain=$TARGETARCH-4.8
adb or ssh?
adb എന്നത് ആൻഡ്രോയിഡ് ഡീബഗ് ബ്രിഡ്ജാണ്. ഞങ്ങളുടെ ആവശ്യങ്ങൾക്ക്, ഇത് അടിസ്ഥാനപരമായി സ്ഥാപിക്കാനുള്ള ഒരു മാർഗമാണ്
ഉപകരണത്തിൽ ഒന്നും ഇൻസ്റ്റാൾ ചെയ്യാതെ തന്നെ ഒരു Android ഉപകരണത്തിലേക്കുള്ള ഒരു ssh കണക്ഷൻ
ഹോസ്റ്റിന്റെ അതേ ലോക്കൽ നെറ്റ്വർക്കിൽ ഉപകരണം ഉള്ളിടത്തോളം, അല്ലെങ്കിൽ അത്
USB വഴി ഹോസ്റ്റിലേക്ക് കണക്റ്റുചെയ്തിരിക്കുന്നു. Adb അല്ലെങ്കിൽ a ഉപയോഗിച്ച് പേൾ ക്രോസ്-കംപൈൽ ചെയ്യാൻ കഴിയും
സാധാരണ ssh കണക്ഷൻ; പൊതുവേ, USB ഉപയോഗിച്ച് നിങ്ങളുടെ ഉപകരണം ഹോസ്റ്റിലേക്ക് കണക്റ്റുചെയ്യാൻ കഴിയുമെങ്കിൽ
പോർട്ട്, അല്ലെങ്കിൽ നിങ്ങളുടെ ഉപകരണത്തിൽ ഒരു sshd ആപ്പ് ഇൻസ്റ്റാൾ ചെയ്യാൻ നിങ്ങൾക്ക് തോന്നുന്നില്ലെങ്കിൽ, നിങ്ങൾക്ക് ഉപയോഗിക്കാൻ താൽപ്പര്യമുണ്ടാകാം
adb, നിങ്ങളുടെ ഉപകരണം റൂട്ട് ചെയ്തിട്ടില്ലെങ്കിൽ, നിങ്ങൾ ssh-ലേക്ക് മാറാൻ നിർബന്ധിതരായേക്കാം
നിർഭാഗ്യവശാൽ -- അതിനെക്കുറിച്ച് പിന്നീട് കൂടുതൽ. പകരമായി, നിങ്ങൾ ഒരു എമുലേറ്ററിലേക്ക് ക്രോസ്-കംപൈൽ ചെയ്യുകയാണെങ്കിൽ,
നിങ്ങൾ adb ഉപയോഗിക്കേണ്ടി വരും.
adb
adb ഉപയോഗിക്കുന്നതിന്, ഇതിൽ നിന്ന് Android SDK ഡൗൺലോഡ് ചെയ്യുക .
"SDK ടൂളുകൾ മാത്രം" പതിപ്പ് മതിയാകും -- നിങ്ങൾ ADT ബണ്ടിൽ ഡൗൺലോഡ് ചെയ്തെങ്കിൽ, നിങ്ങൾക്ക് കഴിയും
$ADT_BUNDLE/sdk/ എന്നതിന് താഴെയുള്ള sdk കണ്ടെത്തുക.
നിങ്ങളുടെ PATH-ലേക്ക് $ANDROID_SDK/പ്ലാറ്റ്ഫോം-ടൂളുകൾ ചേർക്കുക, അത് നിങ്ങൾക്ക് adb-ലേക്ക് ആക്സസ് നൽകും. നിങ്ങൾ ചെയ്യും
ഇപ്പോൾ 'adb ഉപകരണങ്ങൾ' ഉപയോഗിച്ച് നിങ്ങളുടെ ഉപകരണത്തിന്റെ പേര് കണ്ടെത്തേണ്ടതുണ്ട്, പിന്നീട് അത് കോൺഫിഗർ ചെയ്യുക
'-Dtargethost=$DEVICE' വഴി.
എന്നിരുന്നാലും, കോൺഫിഗർ എന്ന് വിളിക്കുന്നതിന് മുമ്പ്, adb ഉപയോഗിക്കുന്നത് ഒരു പ്രായോഗിക തിരഞ്ഞെടുപ്പാണോ എന്ന് നിങ്ങൾ പരിശോധിക്കേണ്ടതുണ്ട്
ഒന്നാം സ്ഥാനം. കാരണം ആൻഡ്രോയിഡിന് എ ഇല്ല / tmp, കൂടാതെ എക്സിക്യൂട്ടബിളുകളെ ഇത് അനുവദിക്കുന്നില്ല
sdcard, ചില ഫയലുകൾ ഇടുന്നതിനായി കോൺഫിഗർ ചെയ്യുന്നതിനായി ഞങ്ങൾ ഉപകരണത്തിൽ എവിടെയെങ്കിലും കണ്ടെത്തേണ്ടതുണ്ട്.
ടെസ്റ്റുകൾ റൺ ചെയ്യാനും. നിങ്ങളുടെ ഉപകരണം റൂട്ട് ചെയ്തിട്ടുണ്ടെങ്കിൽ, നിങ്ങൾ കൊള്ളാം. ഓടാൻ ശ്രമിക്കുക
ഇവ:
$ കയറ്റുമതി TARGETDIR=/mnt/asec/perl
$ adb -s $DEVICE ഷെൽ "echo sh -c '\"mkdir $TARGETDIR\"' | su --"
ഇത് ഞങ്ങൾക്ക് ആവശ്യമായ ഡയറക്ടറി സൃഷ്ടിക്കും, നിങ്ങൾക്ക് അടുത്ത ഘട്ടത്തിലേക്ക് പോകാം. /mnt/asec
ആൻഡ്രോയിഡിൽ tmpfs ആയി മൌണ്ട് ചെയ്തിരിക്കുന്നു, പക്ഷേ ഇത് റൂട്ടിൽ മാത്രമേ ആക്സസ് ചെയ്യാനാകൂ.
നിങ്ങളുടെ ഉപകരണം റൂട്ട് ചെയ്തിട്ടില്ലെങ്കിൽ, നിങ്ങൾ ഇപ്പോഴും ഭാഗ്യവാനായിരിക്കാം. ഇത് പ്രവർത്തിപ്പിക്കാൻ ശ്രമിക്കുക:
$ കയറ്റുമതി TARGETDIR=/data/local/tmp/perl
$ adb -s $DEVICE ഷെൽ "mkdir $TARGETDIR"
കമാൻഡ് പ്രവർത്തിക്കുന്നുണ്ടെങ്കിൽ, നിങ്ങൾക്ക് അടുത്ത ഘട്ടത്തിലേക്ക് പോകാം, എന്നാൽ സൂക്ഷിക്കുക: നിങ്ങൾ ചെയ്യും ഉണ്ട് ലേക്ക് നീക്കം The
ഡയറക്ടറി നിന്ന് The ഉപകരണം ഒരിക്കല് നിങ്ങളെ ആകുന്നു ചെയ്തു! വ്യത്യസ്തമായി /mnt/asec, /data/local/tmp കഴിയുക അല്ല
നേടുക ഓട്ടോമാറ്റിയ്ക്കായി മാലിന്യങ്ങൾ ശേഖരിച്ചു ഒരിക്കല് നിങ്ങളെ അടയ്ക്കുക ഓഫ് The ഫോൺ.
ഇവ രണ്ടും പ്രവർത്തിക്കുന്നില്ലെങ്കിൽ, നിങ്ങളുടെ ഉപകരണത്തിലേക്ക് ക്രോസ്-കംപൈൽ ചെയ്യാൻ നിങ്ങൾക്ക് adb ഉപയോഗിക്കാൻ കഴിയില്ല. ഒന്നുകിൽ
ഇത് റൂട്ട് ചെയ്യാൻ ശ്രമിക്കുക, അല്ലെങ്കിൽ ssh റൂട്ടിലേക്ക് പോകുക.
ssh
ssh ഉപയോഗിക്കുന്നതിന്, നിങ്ങൾ ഒരു sshd ആപ്പ് ഇൻസ്റ്റാൾ ചെയ്യുകയും റൺ ചെയ്യുകയും അത് ശരിയായി സജ്ജീകരിക്കുകയും വേണം. ഇതുണ്ട്
പണമടച്ചുള്ളതും സൗജന്യവുമായ നിരവധി ആപ്ലിക്കേഷനുകൾ ഇത് വളരെ എളുപ്പത്തിൽ ചെയ്യുന്നു, അതിനാൽ നിങ്ങൾക്ക് ഒരെണ്ണം കണ്ടെത്താനാകും
കടയിൽ. Perl-ന് ഒരു പാസ്വേഡ് ഇല്ലാത്ത കണക്ഷൻ ആവശ്യമാണെന്ന് ഓർക്കുക, അതിനാൽ ഒരു പബ്ലിക് സജ്ജീകരിക്കുക
കീ.
നിങ്ങൾ കണക്റ്റ് ചെയ്യുമ്പോഴെല്ലാം നിരവധി ആപ്പുകൾ stderr-ലേക്ക് ക്രാപ്പ് വിതറുന്നുവെന്നത് ശ്രദ്ധിക്കുക, അത് വലിച്ചെറിയാം
കോൺഫിഗർ ചെയ്യുക. കോൺഫിഗറിന്റെ ഭാഗം 'run-ssh' സൃഷ്ടിക്കുന്ന ഭാഗം നിങ്ങൾ മങ്കിപാച്ച് ചെയ്യേണ്ടി വന്നേക്കാം
അത് stderr ഉപേക്ഷിക്കുക.
നിങ്ങൾ ssh ഉപയോഗിക്കുന്നതിനാൽ, കോൺഫിഗർ ചെയ്യുന്നതിന് നിങ്ങൾക്ക് ചില അധിക ആർഗ്യുമെന്റുകൾ നൽകേണ്ടിവരും:
-Dtargetrun=ssh -Dtargethost=$TARGETHOST -Dtargetuser=$TARGETUSER -Dtargetport=$TARGETPORT
സജ്ജമാക്കുന്നു ഒപ്പം അതിനുമപ്പുറം
മുമ്പത്തെ എല്ലാ ജോലികളും ചെയ്തുകഴിഞ്ഞാൽ, നിങ്ങൾ ഇപ്പോൾ കോൺഫിഗർ എന്ന് വിളിക്കാൻ തയ്യാറാണ്.
adb ഉപയോഗിക്കുകയാണെങ്കിൽ, ഒരു "അടിസ്ഥാന" കോൺഫിഗർ ലൈൻ ഇതുപോലെ കാണപ്പെടും:
$ ./Configure -des -Dusedevel -Dusecrosscompile -Dtargetrun=adb \
-Dcc=$TARGETARCH-gcc \
-Dsysroot=$SYSROOT \
-Dtargetdir=$TARGETDIR \
-Dtargethost=$DEVICE
ssh ഉപയോഗിക്കുകയാണെങ്കിൽ, അത് വളരെ വ്യത്യസ്തമല്ല -- ഞങ്ങൾ ടാർഗെറ്റ് റൺ ssh ആയി മാറ്റുകയും കടന്നുപോകുകയും ചെയ്യുന്നു
ടാർഗെറ്റ് യൂസറും ടാർഗെറ്റ് പോർട്ടും. ഇത് ഇതുപോലെയാണ് അവസാനിക്കുന്നത്:
$ ./Configure -des -Dusedevel -Dusecrosscompile -Dtargetrun=ssh \
-Dcc=$TARGETARCH-gcc \
-Dsysroot=$SYSROOT \
-Dtargetdir=$TARGETDIR \
-Dtargethost="$TARGETHOST" \
-Dtargetuser=$TARGETUSER \
-Dtargetport=$TARGETPORT
ഇപ്പോൾ നിങ്ങൾ പ്രവർത്തിപ്പിക്കാനും പരീക്ഷിക്കാനും തയ്യാറാണ്!
അവസാന മുന്നറിയിപ്പ് എന്ന നിലയിൽ, നിങ്ങൾ adb ഉപയോഗിക്കുകയാണെങ്കിൽ, ടെസ്റ്റ് ഹാംഗ് ആയി തോന്നാം; ഇതാണ്
കാരണം അത് എല്ലാ ടെസ്റ്റുകളും പൂർത്തിയാക്കുന്നത് വരെ ഒന്നും ഔട്ട്പുട്ട് ചെയ്യുന്നില്ല. നിങ്ങൾക്ക് അത് പരിശോധിക്കാം
ഉപകരണത്തിൽ ലോഗിൻ ചെയ്ത് $TARGETDIR-ലേക്ക് നീങ്ങി ഫയൽ നോക്കിക്കൊണ്ട് പുരോഗതി
output.stdout.
കുറിപ്പുകൾ
· നിങ്ങൾ x86 ആൻഡ്രോയിഡ് ടാർഗെറ്റുചെയ്യുകയാണെങ്കിൽ, നിങ്ങൾ $TARGETARCH-gcc എന്നതിലേക്ക് മാറ്റേണ്ടിവരും
i686-linux-android-gcc.
ചില പഴയ ലോ-എൻഡ് ഉപകരണങ്ങളിൽ -- 2.2 കാലഘട്ടത്തിന്റെ തുടക്കത്തിൽ ചിന്തിക്കുക -- ചില ടെസ്റ്റുകൾ, പ്രത്യേകിച്ച്
t/re/uniprops, ഫോൺ ക്രാഷ് ചെയ്തേക്കാം, ഇത് ഒരു പ്രാവശ്യം സ്വയം ഓഫാക്കാനും പിന്നീട് തിരികെ പോകാനും ഇടയാക്കും
വീണ്ടും.
തനതായ ബിൽഡുകൾ
Android-നായി Google ഒരു നേറ്റീവ് ടൂൾചെയിൻ നൽകുന്നില്ലെങ്കിലും, നിങ്ങൾക്ക് ഇപ്പോഴും അതിൽ നിന്ന് ഒന്ന് ലഭിക്കും
പ്ലേ സ്റ്റോർ; ഉദാഹരണത്തിന്, നിങ്ങൾക്ക് സൗജന്യമായി ലഭിക്കുന്ന CCTools ആപ്പ് ഉണ്ട്. വയ്ക്കുക
നിങ്ങൾക്ക് ഒരു പൂർണ്ണ ടൂൾചെയിൻ വേണമെന്ന് മനസ്സിൽ വയ്ക്കുക; ചില ആപ്പുകൾ എ മാത്രം ഇൻസ്റ്റാൾ ചെയ്യാൻ ഡിഫോൾട്ടായി മാറുന്നു
ar അല്ലെങ്കിൽ nm പോലുള്ള ചില പ്രധാന യൂട്ടിലിറ്റികളില്ലാത്ത barebones പതിപ്പ്.
ടൂൾചെയിൻ ശരിയായി സജ്ജീകരിച്ചുകഴിഞ്ഞാൽ, യഥാർത്ഥത്തിൽ അവശേഷിക്കുന്ന ഒരേയൊരു തടസ്സം ഇതാണ്
ഉപകരണത്തിൽ എവിടെയാണ് ഇത് ഇൻസ്റ്റാൾ ചെയ്തിട്ടുള്ളതെന്ന് കണ്ടെത്തുന്നു. ഉദാഹരണത്തിന്, CCTools ഇത് ഇൻസ്റ്റാൾ ചെയ്യുന്നു
/data/data/com.pdaxrom.cctools/root/cctools-ലെ ടൂൾചെയിൻ. കൈയിൽ വഴിയുമായി,
perl കംപൈൽ ചെയ്യുന്നത് ഇതിലും അല്പം കൂടുതലാണ്:
SYSROOT= കയറ്റുമതി ചെയ്യുക
കയറ്റുമതി LD_LIBRARY_PATH="$SYSROOT/lib:`pwd`:`pwd`/ ലിബ്:`pwd`/lib/auto:$LD_LIBRARY_PATH"
sh കോൺഫിഗർ ചെയ്യുക -des -Dsysroot=$SYSROOT -Alibpth="/system/lib /vendor/lib"
onworks.net സേവനങ്ങൾ ഉപയോഗിച്ച് perlandroid ഓൺലൈനായി ഉപയോഗിക്കുക