Android рдХреЗ рд▓рд┐рдП JavaCV рдХрд╛ x86 рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
JavaCV OpenCV рдФрд░ ffmpeg рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдг рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ x86 рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдЧрдд рд╣реИрдВ, JavaCV рдореЗрдВ рдЙрдкрдпреБрдХреНрдд рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдпрд╣ x86 рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдореЗрдВ рдПрдХреАрдХреГрдд рдирд╣реАрдВ рд╣реИредрд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬрд╛рд╡рд╛рд╕реАрд╡реА рд╕рдВрдХреБрд▓ рдХреЗ рдЙрдкрдпреБрдХреНрдд x86 рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рдВрдХрд▓рди рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рдирд╣реАрдВ рд▓рдЧреЗрдЧрд╛, рд╕рдмрд╕реЗ рдЬрд▓реНрджрдмрд╛рдЬреА рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рд▓рд┐рдВрдХ рджрд┐рдП рдЧрдП рд╣реИрдВ:
рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдкрдХреЛ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдмрд┐рд▓реНрдб рдЯреВрд▓ (gcc, make, ...) рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдорд╛рд╡реЗрди рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ cppjars рдХреЛ recompile рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Recompiling cjjars (OpenCV рдФрд░ ffmpeg)
Cppjars рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рд╢рд╛рдорд┐рд▓ рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:wget https://javacv.googlecode.com/files/javacv-0.7-cppjars.zip unzip javacv-0.7-cppjars.zip cd javacv-cppjars
Android рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдБ: build_opencv-android-arm.sh рдФрд░ build_ffmpeg-android-arm.sh ред рд╣рдореЗрдВ рд╕рдордХрдХреНрд╖ build_opencv-android-x86.sh рдФрд░ build_ffmpeg-android-x86.sh рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, -x86 рдкреНрд░рддрд┐рдпрд╛рдВ, рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
- arm-linux-androideabi- рдкрд░ i686-linux-android- (рдЯреВрд▓рдЪреИрди рдмрд╛рдЗрдирд░реА рдкреНрд░реАрдлрд┐рдХреНрд╕)
- arm-linux-androideabi- рдкрд░ x86- (рдЯреВрд▓рдЪреЗрди)
- -march = armv7-a -mfloat-abi = softfp -mfpu = vfpv3-d16 -mfpu = neon ... on -mtune = atom -mssse3 -mfpmath = sse (рд╕рдВрдХрд▓рдХ рдЭрдВрдбреЗ)
- i686-linux рдкрд░ рдЖрд░реНрдо- рд▓рд╛рдЗрдирдХреНрд╕
- рдЕрдиреНрдп рдкреНрд░рддреНрдпрдп -x рд╕реЗ -86 рддрдХ
рдЗрд╕реЗ рдЖрдБрдЦ рдмрдВрдж рдХрд░рдХреЗ рдордд рдХрд░реЛ - рд╕рдм рдХреБрдЫ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдпрджрд┐ рдЖрдк рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ :)
рдпрд╣рд╛рдБ рдореБрдЭреЗ build_ffmpeg-android-x86.sh рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рд╛ рд╣реИ:
ANDROID_BIN=$ANDROID_NDK/toolchains/x86-4.8/prebuilt/linux-x86_64/bin ANDROID_ROOT=$ANDROID_NDK/platforms/android-14/arch-x86 tar -xjvf ffmpeg-$FFMPEG_VERSION.tar.bz2 mv ffmpeg-$FFMPEG_VERSION ffmpeg-$FFMPEG_VERSION-android-x86 cd ffmpeg-$FFMPEG_VERSION-android-x86 tar -xjvf ../last_stable_x264.tar.bz2 X264=`echo x264-snapshot-*` cd $X264 ./configure --enable-static --enable-pic --disable-cli --disable-opencl --cross-prefix=$ANDROID_BIN/i686-linux-android- --sysroot=$ANDROID_ROOT --host=i686-linux --extra-cflags="-fpic -pipe -DANDROID -DNDEBUG -mtune=atom -mssse3 -ffast-math -mfpmath=sse -fomit-frame-pointer -fstrict-aliasing -funswitch-loops -finline-limit=300" --extra-ldflags="-lm -lz -Wl,--no-undefined -Wl,-z,noexecstack" make -j8 cd ../ patch -p1 < ../ffmpeg-$FFMPEG_VERSION-android-x86.patch ./configure --prefix=$ANDROID_NDK/../ --enable-shared --enable-gpl --enable-version3 --enable-libx264 \ --disable-static --disable-symver --disable-doc --disable-ffplay --disable-ffmpeg --disable-ffprobe --disable-ffserver --disable-encoders --disable-muxers --disable-devices --disable-demuxer=sbg --disable-demuxer=dts --disable-parser=dca --disable-decoder=dca --disable-decoder=svq3 --enable-network --enable-version3 --disable-amd3dnow --disable-amd3dnowext --disable-outdev=sdl\ --extra-cflags="-I$X264" --extra-ldflags="-L$X264" --enable-cross-compile --cc=$ANDROID_BIN/i686-linux-android-gcc --sysroot=$ANDROID_ROOT --target-os=linux --arch=x86 --cpu=i686 \ --enable-asm --enable-yasm --enable-pic --extra-cflags="-DANDROID -DNDEBUG -fPIC -pipe -mtune=atom -mssse3 -ffast-math -mfpmath=sse" \ --extra-ldflags="-lm -lz -Wl,--no-undefined -Wl,-z,noexecstack" --disable-stripping --disable-symver --disable-programs make -j8 LIBS="libavcodec/libavcodec.so libavdevice/libavdevice.so libavfilter/libavfilter.so libavformat/libavformat.so libavutil/libavutil.so libpostproc/libpostproc.so libswresample/libswresample.so libswscale/libswscale.so" $ANDROID_NDK/toolchains/x86-4.8/prebuilt/linux-x86_64/bin/i686-linux-android-strip $LIBS mkdir -p com/googlecode/javacv/cpp/android-x86/ cp $LIBS com/googlecode/javacv/cpp/android-x86/ jar cvf ../ffmpeg-$FFMPEG_VERSION-android-x86.jar com/ rm -Rf com/ cd ../
рдпрд╣рд╛рдБ ffmpeg- $ FFMPEG_VERSION-android-x86.patch рдЖрд░реНрдо рд╡рд░реНрдЬрди рдХреА рддрд░рд╣ рд╣реА рд╣реИ, рдЖрдк рдмрд╕ рдЗрд╕реЗ рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдФрд░ рдпрд╣рд╛рдБ build_opencv-android-x86.sh рдлрд╝рд╛рдЗрд▓ рд╣реИ:
tar -xzvf opencv-$OPENCV_VERSION.tar.gz mkdir opencv-$OPENCV_VERSION/build_android-x86 cd opencv-$OPENCV_VERSION cd build_android-x86 ANDROID_BIN=$ANDROID_NDK/toolchains/x86-4.6/prebuilt/linux-x86_64/bin/ \ ANDROID_CPP=$ANDROID_NDK/sources/cxx-stl/gnu-libstdc++/4.6/ \ ANDROID_ROOT=$ANDROID_NDK/platforms/android-9/arch-x86/ \ cmake -DCMAKE_TOOLCHAIN_FILE=platforms/android/android.toolchain.cmake -DANDROID_ABI=x86 -DOPENCV_EXTRA_C_FLAGS="-O3 -ffast-math -mtune=atom -mssse3 -mfpmath=sse" -DOPENCV_EXTRA_CXX_FLAGS="-O3 -ffast-math -mtune=atom -mssse3 -mfpmath=sse" -DCMAKE_INSTALL_PREFIX=$ANDROID_NDK/../ -DBUILD_SHARED_LIBS=ON -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_ANDROID_EXAMPLES=OFF -DBUILD_JASPER=ON -DBUILD_JPEG=ON -DBUILD_OPENEXR=ON -DBUILD_PNG=ON -DBUILD_TBB=ON -DBUILD_TIFF=ON -DBUILD_ZLIB=ON -DBUILD_opencv_java=OFF -DBUILD_opencv_python=OFF -DENABLE_PRECOMPILED_HEADERS=OFF -DWITH_1394=OFF -DWITH_FFMPEG=OFF -DWITH_GSTREAMER=OFF -DWITH_TBB=ON -DWITH_CUDA=OFF -DWITH_OPENCL=OFF .. make -j8 LIBS="lib/x86/libopencv*.so lib/x86/libtbb.so" $ANDROID_NDK/toolchains/x86-4.6/prebuilt/linux-x86_64/bin/i686-linux-android-strip $LIBS mkdir -p com/googlecode/javacv/cpp/android-x86/ cp $LIBS com/googlecode/javacv/cpp/android-x86/ jar cvf ../../opencv-$OPENCV_VERSION-android-x86.jar com/ rm -Rf com/ cd ../../
= $ ANDROID_NDK /../ -DBUILD_SHARED_LIBS = рдкрд░ -DBUILD_TESTS = рдмрдВрдж -DBUILD_PERF_TESTS = рдмрдВрдж -DBUILD_ANDROID_EXAMPLES = рдмрдВрдж -DBUILD_JASPER = рдкрд░ -DBUILD_JPEG = рдкрд░ -DBUILD_OPENEXR = рдкрд░ -DBUILD_PNG = рдкрд░ tar -xzvf opencv-$OPENCV_VERSION.tar.gz mkdir opencv-$OPENCV_VERSION/build_android-x86 cd opencv-$OPENCV_VERSION cd build_android-x86 ANDROID_BIN=$ANDROID_NDK/toolchains/x86-4.6/prebuilt/linux-x86_64/bin/ \ ANDROID_CPP=$ANDROID_NDK/sources/cxx-stl/gnu-libstdc++/4.6/ \ ANDROID_ROOT=$ANDROID_NDK/platforms/android-9/arch-x86/ \ cmake -DCMAKE_TOOLCHAIN_FILE=platforms/android/android.toolchain.cmake -DANDROID_ABI=x86 -DOPENCV_EXTRA_C_FLAGS="-O3 -ffast-math -mtune=atom -mssse3 -mfpmath=sse" -DOPENCV_EXTRA_CXX_FLAGS="-O3 -ffast-math -mtune=atom -mssse3 -mfpmath=sse" -DCMAKE_INSTALL_PREFIX=$ANDROID_NDK/../ -DBUILD_SHARED_LIBS=ON -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_ANDROID_EXAMPLES=OFF -DBUILD_JASPER=ON -DBUILD_JPEG=ON -DBUILD_OPENEXR=ON -DBUILD_PNG=ON -DBUILD_TBB=ON -DBUILD_TIFF=ON -DBUILD_ZLIB=ON -DBUILD_opencv_java=OFF -DBUILD_opencv_python=OFF -DENABLE_PRECOMPILED_HEADERS=OFF -DWITH_1394=OFF -DWITH_FFMPEG=OFF -DWITH_GSTREAMER=OFF -DWITH_TBB=ON -DWITH_CUDA=OFF -DWITH_OPENCL=OFF .. make -j8 LIBS="lib/x86/libopencv*.so lib/x86/libtbb.so" $ANDROID_NDK/toolchains/x86-4.6/prebuilt/linux-x86_64/bin/i686-linux-android-strip $LIBS mkdir -p com/googlecode/javacv/cpp/android-x86/ cp $LIBS com/googlecode/javacv/cpp/android-x86/ jar cvf ../../opencv-$OPENCV_VERSION-android-x86.jar com/ rm -Rf com/ cd ../../
рдпрд╣рд╛рдБ рдореИрдВрдиреЗ .arm рдкреИрдЪ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИ рдЬреЛ рдПрдХ рдФрд░ android.mk рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдФрд░ OpenCV рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ / android / android.toolchain.cmake рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ, рдФрд░ рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЭрдВрдбреЗ рднреА рдЬреЛрдбрд╝реЗ рд╣реИрдВ:
-DANDROID_ABI=x86 -DOPENCV_EXTRA_C_FLAGS="-O3 -ffast-math -mtune=atom -mssse3 -mfpmath=sse" -DOPENCV_EXTRA_CXX_FLAGS="-O3 -ffast-math -mtune=atom -mssse3 -mfpmath=sse"
рдЕрдм рдЕрдЧрд░ рддреБрдо рдХрд░рддреЗ рд╣реЛ:
sh ./build_all.sh android-x86 cd ..
рдЖрдкрдХреЛ ffmpeg-2.1.1-android-x86.jar рдФрд░ opencv-2.4.8-android-x86.jar рдорд┐рд▓реЗрдЧрд╛ ред
рдЕрдм рд╣рдо рдЕрдВрдд рдореЗрдВ JavaCV рдкреИрдХреЗрдЬ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
JavaCV рдХреЗ x86 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ
рдкрд╣рд▓реЗ JavaCPP рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ: git clone https://code.google.com/p/javacpp/ cd javacpp/ git checkout 0.6 mvn install cd ..
JavaCV рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж:
git clone https://code.google.com/p/javacv/ cd javacv git checkout 0.7
рдЕрдм рдЖрдк JavaCV рдореЗрдВ Android-x86 рдкреНрд░реЙрдкрд░реНрдЯреА рд╕реЗрдЯ рдХрд░рдХреЗ JavaCV рдХреЗ Android-x86 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
mvn package -Pffmpeg -Djavacpp.options="-properties android-x86 -Dplatform.root=$ANDROID_NDK -Dcompiler.path=$ANDROID_NDK/toolchains/x86-4.6/prebuilt/linux-x86_64/bin/i686-linux-android-g++ -Dcompiler.includepath=$ANDROID_NDK/sources/cxx-stl/gnu-libstdc++/4.6/include\ :$ANDROID_NDK/sources/cxx-stl/gnu-libstdc++/4.6/libs/x86/include\ :../javacv-cppjars/opencv-2.4.8/build_android-x86/\ :../javacv-cppjars/opencv-2.4.8/modules/core/include\ :../javacv-cppjars/opencv-2.4.8/modules/androidcamera/include\ :../javacv-cppjars/opencv-2.4.8/modules/flann/include\ :../javacv-cppjars/opencv-2.4.8/modules/imgproc/include\ :../javacv-cppjars/opencv-2.4.8/modules/highgui/include\ :../javacv-cppjars/opencv-2.4.8/modules/features2d/include\ :../javacv-cppjars/opencv-2.4.8/modules/calib3d/include\ :../javacv-cppjars/opencv-2.4.8/modules/ml/include\ :../javacv-cppjars/opencv-2.4.8/modules/video/include\ :../javacv-cppjars/opencv-2.4.8/modules/legacy/include\ :../javacv-cppjars/opencv-2.4.8/modules/objdetect/include\ :../javacv-cppjars/opencv-2.4.8/modules/photo/include\ :../javacv-cppjars/opencv-2.4.8/modules/gpu/include\ :../javacv-cppjars/opencv-2.4.8/modules/nonfree/include\ :../javacv-cppjars/opencv-2.4.8/modules/contrib/include\ :../javacv-cppjars/opencv-2.4.8/modules/stitching/include\ :../javacv-cppjars/opencv-2.4.8/modules/ts/include\ :../javacv-cppjars/opencv-2.4.8/modules/videostab/include\ :../javacv-cppjars/ffmpeg-2.1.1-android-x86 \ -Dcompiler.linkpath=$ANDROID_NDK/sources/cxx-stl/gnu-libstdc++/4.6/libs/x86\ :../javacv-cppjars/opencv-2.4.8/build_android-x86/lib/x86\ :../javacv-cppjars/ffmpeg-2.1.1-android-x86/libswscale\ :../javacv-cppjars/ffmpeg-2.1.1-android-x86/libavcodec\ :../javacv-cppjars/ffmpeg-2.1.1-android-x86/libswresample\ :../javacv-cppjars/ffmpeg-2.1.1-android-x86/libpostproc\ :../javacv-cppjars/ffmpeg-2.1.1-android-x86/libavfilter\ :../javacv-cppjars/ffmpeg-2.1.1-android-x86/libavformat\ :../javacv-cppjars/ffmpeg-2.1.1-android-x86/libavutil\ :../javacv-cppjars/ffmpeg-2.1.1-android-x86/libavdevice"
рдЖрдкрдХреЛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдкреИрдХреЗрдЬ рд▓рдХреНрд╖реНрдп / рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдорд┐рд▓реЗрдВрдЧреЗ:
2.7M Jan 15 19:09 javacv-android-x86.jar 3.6M Jan 15 19:09 javacv-bin.zip 747K Jan 15 19:09 javacv-src.zip 734K Jan 15 19:09 javacv.jar
рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ x86 рд╕рдВрд╕реНрдХрд░рдг рдЬреЛрдбрд╝рдирд╛
рдЖрдк javacv-android-x86.jar , ffmpeg-2.1.1-android-x86.jar рдФрд░ opencv рдХреЗ рдЕрдВрджрд░ рдЙрддреНрдкрдиреНрди рд╣реБрдИ .so рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд▓рд┐рдВрдХ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬреЛрдВ рд╕реЗ рдпрд╛ рдЙрди рд▓реЛрдЧреЛрдВ рд╕реЗ рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдиреЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдерд╛ред -2.4.8-android-x86.jar рдЕрдкрдиреЗ Android рдкреИрдХреЗрдЬ рдХреЗ / lib / x86 / рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП, рдмрд┐рд▓реНрдХреБрд▓ рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ рдХрд┐ рд╡рд░реНрдЬрди / lib / armeabi-v7a / рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдгредAndroid рдХреЗ рд▓рд┐рдП Alljoyn рдХрд╛ x86 рд╕рдВрд╕реНрдХрд░рдг
Alljoyn рд╡рд┐рднрд┐рдиреНрди рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рд╕рд╣рдХрд░реНрдореА рд╕реЗ рд╕рд╣рдХрд░реНрдореА рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИредрдкреБрд╕реНрддрдХрд╛рд▓рдп рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд (рдЕрдкрд╛рдЪреЗ рд▓рд╛рдЗрд╕реЗрдВрд╕) рд╣реИ, рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдХреНрд╡рд╛рд▓рдХреЙрдо рдЗрдиреЛрд╡реЗрд╢рди рд╕реЗрдВрдЯрд░ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдСрд▓рд╕рд╛рдЗрди рдПрд▓рд╛рдпрдВрд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЧрдИ рд╣реИ рдФрд░ рдЕрдм рдЗрд╕реЗ рдпрд╣рд╛рдВ рд╣реЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред
рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ precompiled x86 рд╕рдВрд╕реНрдХрд░рдг рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рддреЛ рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрдХрд▓рди рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реИред
рдЬрдм рдЖрдк Android рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЗрдЦреЗрдВрдЧреЗ:
cpp/ core AllJoyn functionality, implemented in C++ - built from Git projects alljoyn_core and common - required for all AllJoyn applications java/ optional Java language binding (built from alljoyn_java) - required for Android apps c/ optional ANSI C language binding (built from alljoyn_c) - required by Unity binding unity/ optional Unity language binding (built from alljoyn_unity) about/ implements AllJoyn About Feature. (built from about.git/(cpp and java))
рдпрджрд┐ рдЖрдк alljoyn.jar рдХреЗ рдЬрд╛рд╡рд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ lib / armeabi / рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ liballjoyn_java.so рдЦреЛрдЬреЗрдВред рдЗрд╕ рдкреИрдХреЗрдЬ рд╕реЗ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ (.so / .a рдлрд╝рд╛рдЗрд▓реЗрдВ) рдХреЗрд╡рд▓ ARMv5 рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдЙрддреНрдХреГрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрдХрдЯреНрдареЗ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдЗрд╕ рд▓рд┐рдВрдХ рд╕реЗ рдЖрдк x86 рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ ARMv5 рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╣реИред
рдпрджрд┐ рдЖрдк Android рдХреЗ рд▓рд┐рдП AllJoyn .jar рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк liballjoyn_java.so рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ lib / x86 рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдмрд╛рдЗрдирд░реА рдХреЛ рд╕реНрд╡рдпрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣рд╛рдВ рдореИрдВрдиреЗ рдЬреЛ рдХреБрдЫ рдХрд┐рдпрд╛ рдЙрд╕рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реИ
Android рдХреЗ рд▓рд┐рдП x86 рдордВрдЪ рдХреЗ рд▓рд┐рдП Alljoyn рдХрд╛ рд╕рдВрдХрд▓рди
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕реНрд░реЛрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ: git clone https://git.allseenalliance.org/gerrit/core/alljoyn cd alljoyn
рдлрд┐рд░ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ x86 рдбрд┐рд╡рд╛рдЗрд╕ рдпрд╛ x86 рдПрдореБрд▓реЗрдЯрд░ рд╕реЗ libcrypto.so рдФрд░ libssl.so рд▓реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдмрд┐рд▓реНрдб / рдПрдВрдбреНрд░реЙрдЗрдб / x86 / рд░рд┐рд▓реАрдЬрд╝ / рдбрд┐рд╕реНрдЯ / рд╕реАрдкреА / рд▓рд┐рдм / рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбрд╛рд▓реЗрдВ:
mkdir -p build/android/x86/release/dist/cpp/lib/ adb pull /system/lib/libcrypto.so build/android/x86/release/dist/cpp/lib/ adb pull /system/lib/libssl.so build/android/x86/release/dist/cpp/lib/
рдЕрдм рдЖрдк x86 рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ; рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕рдмрд╕реЗ рдЙрдмрд╛рдК рдмрд╛рдд AOSP рд╕реНрд░реЛрддреЛрдВ рдХреА рдПрдХ рдкреНрд░рддрд┐ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
export CLASSPATH=/usr/share/java/junit.jar scons OS=android CPU=x86 ANDROID_NDK=/opt/android-ndk ANDROID_SDK=/opt/android-sdk ANDROID_SRC=/home/ph0b/android-build VARIANT=release BINDINGS=cpp,c,java,unity
рдореВрд▓ рд▓реЗрдЦ: