Swift Androidアプリ作成入門
4681 ワード
#前言Swift標準ライブラリでは、Android armv 7のカーネルをコンパイルできます.これにより、Androidモバイルデバイス上でSwift文コードを実行できます.この文書では、あなたのアンドロイド携帯電話で簡単な「hello,world」プログラムを実行する方法について説明します.このガイドをうまく使うためには、次の知識が必要です.は、SwiftソースのLinux環境をコンパイルすることができる.stdlibは現在、Linux環境でのみアンドロイドで使用可能なバージョンにコンパイルできます.Androidの構築を試みる前に、SwiftプロジェクトのREADMEを参考にLinuxをコンパイルできることを確認してください. Android NDKは、21以上のバージョンで、次のリンクでダウンロードできます.http://developer.android.com/ndk/downloads/index.html. リモートデバッグ可能なアンドロイドデバイス.リモートデバッグでstdlibの結果をアンドロイドデバイスに配備する必要があります.次の公式ウィザードに従ってリモートデバッグできます.https://developer.chrome.com/devtools/docs/remote-debugging.Android環境でSwiftが作成したプログラム「Hello,World」を表示する方法を紹介します.
#Androidの「Hello,world」##1.Swift Android stdlib依存の構築
Linuxの下のSwift stdlibを構築するにはapt-get install libicu-dev icu-devtoolsが必要であることに気づいたかもしれません.簡単に言えば、アンドロイドデバイス上で使用されるSwift stdlibを構築するにはlibiconvとlibicuが必要です.しかし、これらのライブラリのアンドロイドデバイスバージョンが必要です.アンドロイドデバイスのlibiconvとlibicuを構築します.
##2. Androidで使用されているSwitf stdlibを構築してSwitfディレクトリを入力し、構築スクリプトを実行してAndroid NDKとlibicu/libiconvディレクトリにパスを渡します.
##3. コンパイルswiftはアンドロイドデバイス上で簡単なSwiftファイルを作成し、helloと名付けた.swift:
ステップ2で構築したSwiftコンパイラを使用してSwiftソースコードをコンパイルし、ターゲットをアンドロイドに設定します.
これにより、コマンドを実行するディレクトリの下にhello実行可能ファイルが生成されるはずです.Linux環境でこの実行可能ファイルを実行しようとすると、次のエラーが表示されます.
これは、Androidデバイス上で構築された実行可能ファイルを実行するためです.Linux上で実行できるはずがありません.次に、アンドロイドデバイスに配備して実行します.
##4. 構築された製品をデバイスに配備adb pushコマンドを使用して、構築された製品をLinux環境からアンドロイドデバイスにコピーできます.adb devicesコマンドを実行する前に、デバイスが接続されていることを確認し、リストされていることを確認し、次のコマンドを実行してSwift Android stdlibをコピーします.
また、Android NDKのlibc++:
最後に、前に構築したhello実行可能ファイルをコピーする必要があります.
##5. Androidデバイスで「Hello,World」を実行すると、Androidデバイスでadb shellコマンドを使用してhello実行可能ファイルを実行できます.
次の出力が表示されます.
おめでとう!アンドロイドで最初のSwiftプログラムを実行したばかりです.皆さんが信じないなら、上記の手順に従って自分でやってみてください.
英文原文:Getting Started with Swift on Androidリンク:https://github.com/apple/swift/blob/master/docs/Android.md
#Androidの「Hello,world」##1.Swift Android stdlib依存の構築
Linuxの下のSwift stdlibを構築するにはapt-get install libicu-dev icu-devtoolsが必要であることに気づいたかもしれません.簡単に言えば、アンドロイドデバイス上で使用されるSwift stdlibを構築するにはlibiconvとlibicuが必要です.しかし、これらのライブラリのアンドロイドデバイスバージョンが必要です.アンドロイドデバイスのlibiconvとlibicuを構築します.
1. curl, antoconf, antomake, libtook git。
2. SwiftAndroid/libiconv-libicu-android 。 :git clone [email protected]:SwiftAndroid/libiconv-libicu-android.git。
3. which ndk-build。 NDK ndk-build 。 , NDK PATH 。
4. libiconv-libicu-android , build.sh。
5. libiconv-libicu-android armeabi-v7a/icu/source/i18n armeabi-v7a/icu/source/common 。
##2. Androidで使用されているSwitf stdlibを構築してSwitfディレクトリを入力し、構築スクリプトを実行してAndroid NDKとlibicu/libiconvディレクトリにパスを渡します.
$ utils/build-script \
-R \ # Build in ReleaseAssert mode.
--android \ # Build for Android.
--android-ndk ~/android-ndk-r10e \ # Path to an Android NDK.
--android-ndk-version 21 \ # The NDK version to use. Must be 21 or greater.
--android-icu-uc ~/libicu-android/armeabi-v7a/libicuuc.so \
--android-icu-uc-include ~/libicu-android/armeabi-v7a/icu/source/common \
--android-icu-i18n ~/libicu-android/armeabi-v7a/libicui18n.so \
--android-icu-i18n-include ~/libicu-android/armeabi-v7a/icu/source/i18n/
##3. コンパイルswiftはアンドロイドデバイス上で簡単なSwiftファイルを作成し、helloと名付けた.swift:
print("Hello, Android")
ステップ2で構築したSwiftコンパイラを使用してSwiftソースコードをコンパイルし、ターゲットをアンドロイドに設定します.
$ build/Ninja/ReleaseAssert/swift-linux-x86_64/swiftc \ # The Swift compiler built in the previous step.
-target armv7-none-linux-androideabi \ # Targeting android-armv7.
-sdk ~/android-ndk-r10e/platforms/android-21/arch-arm \ # Use the same NDK path and version as you used to build the stdlib in the previous step.
-L ~/android-ndk-r10e/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a \ # Link the Android NDK's libc++ and libgcc.
-L ~/android-ndk-r10e/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.8 \
hello.swift
これにより、コマンドを実行するディレクトリの下にhello実行可能ファイルが生成されるはずです.Linux環境でこの実行可能ファイルを実行しようとすると、次のエラーが表示されます.
cannot execute binary file: Exec format error
これは、Androidデバイス上で構築された実行可能ファイルを実行するためです.Linux上で実行できるはずがありません.次に、アンドロイドデバイスに配備して実行します.
##4. 構築された製品をデバイスに配備adb pushコマンドを使用して、構築された製品をLinux環境からアンドロイドデバイスにコピーできます.adb devicesコマンドを実行する前に、デバイスが接続されていることを確認し、リストされていることを確認し、次のコマンドを実行してSwift Android stdlibをコピーします.
$ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/libswiftCore.so /data/local/tmp
$ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/libswiftGlibc.so /data/local/tmp
$ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/libswiftSwiftOnoneSupport.so /data/local/tmp
$ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/libswiftRemoteMirror.so /data/local/tmp
$ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/libswiftSwiftExperimental.so /data/local/tmp
また、Android NDKのlibc++:
$ adb push ~/android-ndk-r10e/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_shared.so /data/local/tmp
最後に、前に構築したhello実行可能ファイルをコピーする必要があります.
$ adb push hello /data/local/tmp
##5. Androidデバイスで「Hello,World」を実行すると、Androidデバイスでadb shellコマンドを使用してhello実行可能ファイルを実行できます.
$ adb shell LD_LIBRARY_PATH=/data/local/tmp hello
次の出力が表示されます.
Hello, Android
おめでとう!アンドロイドで最初のSwiftプログラムを実行したばかりです.皆さんが信じないなら、上記の手順に従って自分でやってみてください.
: , 、 、 .
英文原文:Getting Started with Swift on Androidリンク:https://github.com/apple/swift/blob/master/docs/Android.md