mirror of
https://github.com/opencv/opencv.git
synced 2025-01-18 06:03:15 +08:00
Merge pull request #262 from kirill-kornyakov:minor-cleanings-for-android-sdk
This commit is contained in:
commit
2e2972cef3
@ -3,4 +3,4 @@ Java API
|
||||
********
|
||||
|
||||
|
||||
`Java API reference external link (JavaDoc) <http://docs.opencv.org/java/>`_
|
||||
Java API reference (JavaDoc): external `link <http://docs.opencv.org/java/>`_.
|
||||
|
@ -1,18 +1,20 @@
|
||||
*********************************************
|
||||
Base Loader Callback Interface implementation
|
||||
Base Loader Callback Interface Implementation
|
||||
*********************************************
|
||||
|
||||
.. highlight:: java
|
||||
.. class:: BaseLoaderCallback
|
||||
|
||||
Basic implementation of LoaderCallbackInterface. Logic of this implementation is well-described by the following scheme:
|
||||
Basic implementation of ``LoaderCallbackInterface``. Logic of this implementation is
|
||||
well-described by the following scheme:
|
||||
|
||||
.. image:: img/AndroidAppUsageModel.png
|
||||
|
||||
Using in Java Activity
|
||||
----------------------
|
||||
|
||||
There is a very base code snippet implementing the async initialization with BaseLoaderCallback. See the "15-puzzle" OpenCV sample for details.
|
||||
There is a very base code snippet implementing the async initialization with ``BaseLoaderCallback``.
|
||||
See the "15-puzzle" OpenCV sample for details.
|
||||
|
||||
.. code-block:: java
|
||||
:linenos:
|
||||
@ -42,7 +44,7 @@ There is a very base code snippet implementing the async initialization with Bas
|
||||
@Override
|
||||
protected void onResume()
|
||||
{
|
||||
Log.i(TAG, "called onResume");
|
||||
Log.i(TAG, "Called onResume");
|
||||
super.onResume();
|
||||
|
||||
Log.i(TAG, "Trying to load OpenCV library");
|
||||
@ -55,6 +57,7 @@ There is a very base code snippet implementing the async initialization with Bas
|
||||
Using in Service
|
||||
----------------
|
||||
|
||||
Default BaseLoaderCallback implementation treat application context as Activity and calls Activity.finish() method to exit in case of initialization failure.
|
||||
To override this behavior you need to override finish() method of BaseLoaderCallback class and implement your own finalization method.
|
||||
|
||||
Default ``BaseLoaderCallback`` implementation treats application context as ``Activity`` and calls
|
||||
``Activity.finish()`` method to exit in case of initialization failure.
|
||||
To override this behavior you need to override ``finish()`` method of ``BaseLoaderCallback`` class
|
||||
and implement your own finalization method.
|
||||
|
@ -28,7 +28,7 @@ void cancel()
|
||||
|
||||
.. method:: void cancel()
|
||||
|
||||
Installation if package has been canceled.
|
||||
Installation of package has been cancelled.
|
||||
|
||||
void wait_install()
|
||||
-------------------
|
||||
|
@ -7,34 +7,38 @@ Introduction
|
||||
|
||||
.. highlight:: java
|
||||
|
||||
OpenCV Manager is an Android service targeted to manage OpenCV library binaries on end users devices. It allows sharing the OpenCV dynamic libraries of different versions between applications on the same device. The Manager provides the following benefits\:
|
||||
OpenCV Manager is an Android service targeted to manage OpenCV library binaries on end users devices.
|
||||
It allows sharing the OpenCV dynamic libraries between applications on the same device. The Manager
|
||||
provides the following benefits\:
|
||||
|
||||
#. Less memory usage. All apps use the same binaries from service and do not keep native libs inside themselves;
|
||||
#. Hardware specific optimizations for all supported platforms;
|
||||
#. Trusted OpenCV library source. All packages with OpenCV are published on Google Play service;
|
||||
#. Trusted OpenCV library source. All packages with OpenCV are published on Google Play market;
|
||||
#. Regular updates and bug fixes;
|
||||
|
||||
Usage model for target user
|
||||
---------------------------
|
||||
Usage model for end user
|
||||
------------------------
|
||||
|
||||
.. image:: img/AndroidAppUsageModel.png
|
||||
|
||||
First OpenCV app\:
|
||||
|
||||
#. Any OpenCV-dependent app is installed from Google Play marketplace or manually;
|
||||
#. At the first launch, it suggests installing OpenCV Manager;
|
||||
#. Then OpenCV Manager is downloaded and installed, using Google Play marketplace service.
|
||||
#. When Manager has ben started, the application suggests installing OpenCV library for the target device trough Google Play marketplace if it is necessary;
|
||||
#. After installation is finished, the app may be launched to perform common tasks.
|
||||
#. At the first launch, it suggests installation of OpenCV Manager;
|
||||
#. Then OpenCV Manager is downloaded and installed, using the Google Play application.
|
||||
#. When Manager has been started, the application suggests installation of OpenCV library for the
|
||||
target device architecture if it is necessary;
|
||||
#. After the installation is finished, the app may be launched.
|
||||
|
||||
Next OpenCV app\:
|
||||
Subsequent launches of OpenCV apps\:
|
||||
|
||||
#. Any OpenCV-dependent app is installed from Google Play marketplace or manually;
|
||||
#. Any OpenCV-dependent app is installed from Google Play market or manually;
|
||||
#. At the first launch, the app starts as usually;
|
||||
#. If the selected version is not installed, OpenCV Manager suggests installing OpenCV library for the target device trough Google Play marketplace;
|
||||
#. After installation is finished, the app may be launched to perform common tasks.
|
||||
#. If the selected OpenCV version is not installed, OpenCV Manager suggests installing OpenCV
|
||||
library for the target device through Google Play marketplace;
|
||||
#. After the installation is finished, the app may be launched.
|
||||
|
||||
OpenCV Manager structure
|
||||
------------------------
|
||||
Architecture of OpenCV Manager
|
||||
------------------------------
|
||||
|
||||
.. image:: img/Structure.png
|
@ -12,23 +12,27 @@ boolean initDebug()
|
||||
|
||||
.. method:: static boolean initDebug()
|
||||
|
||||
Loads and initializes OpenCV library from within current application package. Roughly it is analog of ``system.loadLibrary("opencv_java")``.
|
||||
Loads and initializes OpenCV library from within current application package. Roughly it is
|
||||
analog of ``system.loadLibrary("opencv_java")``.
|
||||
|
||||
:rtype: boolean;
|
||||
:return: returns true if initialization of OpenCV was successful.
|
||||
|
||||
.. note:: This method is deprecated for production code. It is designed for experimantal and local development purposes only. If you want to publish your app use approach with async initialization.
|
||||
.. note:: This method is deprecated for production code. It is designed for experimental and local
|
||||
development purposes only. If you want to publish your app use approach with async
|
||||
initialization.
|
||||
|
||||
boolean initAsync()
|
||||
-------------------
|
||||
|
||||
.. method:: static boolean initAsync(String Version, Context AppContext, LoaderCallbackInterface Callback)
|
||||
|
||||
Loads and initializes OpenCV library using OpenCV Manager service.
|
||||
Loads and initializes OpenCV library using OpenCV Manager.
|
||||
|
||||
:param Version: OpenCV Library version.
|
||||
:param AppContext: application context for connecting to the service.
|
||||
:param Callback: object, that implements LoaderCallbackInterface for handling connection status (see BaseLoaderCallback).
|
||||
:param Callback: object, that implements ``LoaderCallbackInterface`` for handling connection
|
||||
status (see ``BaseLoaderCallback``).
|
||||
|
||||
:rtype: boolean;
|
||||
:return: returns true if initialization of OpenCV starts successfully.
|
||||
@ -43,10 +47,3 @@ OpenCV version constants
|
||||
.. data:: OPENCV_VERSION_2_4_3
|
||||
|
||||
OpenCV Library version 2.4.3
|
||||
|
||||
Other constatnts
|
||||
----------------
|
||||
|
||||
.. data:: OPEN_CV_SERVICE_URL
|
||||
|
||||
Url for OpenCV Manager on Google Play (Android Market)
|
@ -12,9 +12,9 @@ void onManagerConnected()
|
||||
|
||||
.. method:: void onManagerConnected(int status)
|
||||
|
||||
Callback method that is called after OpenCV Library initialization.
|
||||
Callback method that is called after OpenCV library initialization.
|
||||
|
||||
:param status: status of initialization (see Initialization Status Constants).
|
||||
:param status: status of initialization (see "Initialization Status Constants" section below).
|
||||
|
||||
void onPackageInstall()
|
||||
-----------------------
|
||||
@ -23,7 +23,7 @@ void onPackageInstall()
|
||||
|
||||
Callback method that is called in case when package installation is needed.
|
||||
|
||||
:param callback: answer object with approve and cancel methods and package description.
|
||||
:param callback: answer object with ``install`` and ``cancel`` methods and package description.
|
||||
|
||||
Initialization status constants
|
||||
-------------------------------
|
||||
@ -34,15 +34,15 @@ Initialization status constants
|
||||
|
||||
.. data:: MARKET_ERROR
|
||||
|
||||
Google Play (Android Market) cannot be invoked
|
||||
Google Play (Android Market) application cannot be invoked
|
||||
|
||||
.. data:: INSTALL_CANCELED
|
||||
|
||||
OpenCV library installation was canceled by user
|
||||
OpenCV library installation was cancelled by user
|
||||
|
||||
.. data:: INCOMPATIBLE_MANAGER_VERSION
|
||||
|
||||
Version of OpenCV Manager Service is incompatible with this app. Service update is needed
|
||||
Version of OpenCV Manager is incompatible with this app. Manager update is needed.
|
||||
|
||||
.. data:: INIT_FAILED
|
||||
|
||||
|
@ -3,38 +3,7 @@ Manager Workflow
|
||||
|
||||
.. _manager_selection:
|
||||
|
||||
OpenCV Manager selection
|
||||
------------------------
|
||||
|
||||
Since version 1.7 several packages of OpenCV Manager is built. Every package includes OpenCV library
|
||||
for package target platform. The internal library is used for most cases, except the rare one, when
|
||||
arm-v7a without NEON instruction set processor is detected. In this case additional binary package
|
||||
for arm-v7a is used. The new package selection logic in most cases simplifies OpenCV installation
|
||||
on end user devices. In most cases OpenCV Manager may be installed automatically from Google Play.
|
||||
For such case, when Google Play is not available, i.e. emulator, developer board, etc, you can
|
||||
install it manually using adb tool.
|
||||
|
||||
.. code-block:: sh
|
||||
:linenos:
|
||||
|
||||
adb install OpenCV-2.4.3-android-sdk/apk/OpenCV_2.4.3_Manager_2.0_<platform_name>.apk
|
||||
|
||||
Use table to determine right OpenCV Manager package:
|
||||
|
||||
+----------------------------+-----------------+-----------------------------------------------------+
|
||||
| Hardware Platform | Android version | Package name |
|
||||
+============================+=================+=====================================================+
|
||||
| Intel x86 | >= 2.3 | OpenCV_2.4.3_Manager_2.0_x86.apk |
|
||||
+----------------------------+-----------------+-----------------------------------------------------+
|
||||
| MIPS | >= 2.3 | OpenCV_2.4.3_Manager_2.0_mips.apk |
|
||||
+----------------------------+-----------------+-----------------------------------------------------+
|
||||
| armeabi (arm-v5, arm-v6) | >= 2.3 | OpenCV_2.4.3_Manager_2.0_armeabi.apk |
|
||||
+----------------------------+-----------------+-----------------------------------------------------+
|
||||
| armeabi-v7a (arm-v7a-NEON) | >= 2.3 | OpenCV_2.4.3_Manager_2.0_armv7a-neon.apk |
|
||||
+----------------------------+-----------------+-----------------------------------------------------+
|
||||
| armeabi-v7a (arm-v7a-NEON) | 2.2 | OpenCV_2.4.3.1_Manager_2.3_armv7a-neon-android8.apk |
|
||||
+----------------------------+-----------------+-----------------------------------------------------+
|
||||
|
||||
.. include:: ../readme.txt
|
||||
|
||||
First application start
|
||||
-----------------------
|
||||
@ -51,7 +20,7 @@ If OpenCV library installation has been approved\:
|
||||
|
||||
.. image:: img/LibInstallAproved.png
|
||||
|
||||
If OpenCV library installation has been canceled\:
|
||||
If OpenCV library installation has been cancelled\:
|
||||
|
||||
.. image:: img/LibInstallCanceled.png
|
||||
|
||||
|
@ -1,28 +1,33 @@
|
||||
OpenCV Manager selection
|
||||
========================
|
||||
How to select the proper version of OpenCV Manager
|
||||
--------------------------------------------------
|
||||
|
||||
Since version 1.7 several packages of OpenCV Manager is built. Every package includes OpenCV library
|
||||
for package target platform. The internal library is used for most cases, except the rare one, when
|
||||
arm-v7a without NEON instruction set processor is detected. In this case additional binary package
|
||||
for arm-v7a is used. The new package selection logic in most cases simplifies OpenCV installation
|
||||
on end user devices. In most cases OpenCV Manager may be installed automatically from Google Play.
|
||||
For such case, when Google Play is not available, i.e. emulator, developer board, etc, you can
|
||||
install it manually using adb tool:
|
||||
Since version 1.7 several packages of OpenCV Manager are built. Every package is targeted for some
|
||||
specific hardware platform and includes corresponding OpenCV binaries. So, in most cases OpenCV
|
||||
Manager uses built-in version of OpenCV. Separate package with OpenCV binaries is currently used in
|
||||
a single rare case, when an ARMv7-A processor without NEON support is detected. In this case an
|
||||
additional binary package is used. The new package selection logic in most cases simplifies OpenCV
|
||||
installation on end user devices. In most cases OpenCV Manager may be installed automatically from
|
||||
Google Play.
|
||||
|
||||
adb install OpenCV-2.4.3-android-sdk/apk/OpenCV_2.4.3.2_Manager_2.4_<platform_name>.apk
|
||||
If Google Play is not available (i.e. on emulator, developer board, etc), you can install it
|
||||
manually using adb tool:
|
||||
|
||||
Use table to determine right OpenCV Manager package:
|
||||
.. code-block:: sh
|
||||
|
||||
+----------------------------+-----------------+-----------------------------------------------------+
|
||||
| Hardware Platform | Android version | Package name |
|
||||
+============================+=================+=====================================================+
|
||||
adb install OpenCV-2.4.3-android-sdk/apk/OpenCV_2.4.3.2_Manager_2.4_<platform>.apk
|
||||
|
||||
Use the table below to determine proper OpenCV Manager package for your device:
|
||||
|
||||
+------------------------------+--------------+-----------------------------------------------------+
|
||||
| Hardware Platform | Android ver. | Package name |
|
||||
+==============================+==============+=====================================================+
|
||||
| armeabi-v7a (ARMv7-A + NEON) | >= 2.3 | OpenCV_2.4.3.2_Manager_2.4_armv7a-neon.apk |
|
||||
+------------------------------+--------------+-----------------------------------------------------+
|
||||
| armeabi-v7a (ARMv7-A + NEON) | = 2.2 | OpenCV_2.4.3.2_Manager_2.4_armv7a-neon-android8.apk |
|
||||
+------------------------------+--------------+-----------------------------------------------------+
|
||||
| armeabi (ARMv5, ARMv6) | >= 2.3 | OpenCV_2.4.3.2_Manager_2.4_armeabi.apk |
|
||||
+------------------------------+--------------+-----------------------------------------------------+
|
||||
| Intel x86 | >= 2.3 | OpenCV_2.4.3.2_Manager_2.4_x86.apk |
|
||||
+----------------------------+-----------------+-----------------------------------------------------+
|
||||
+------------------------------+--------------+-----------------------------------------------------+
|
||||
| MIPS | >= 2.3 | OpenCV_2.4.3.2_Manager_2.4_mips.apk |
|
||||
+----------------------------+-----------------+-----------------------------------------------------+
|
||||
| armeabi (arm-v5, arm-v6) | >= 2.3 | OpenCV_2.4.3.2_Manager_2.4_armeabi.apk |
|
||||
+----------------------------+-----------------+-----------------------------------------------------+
|
||||
| armeabi-v7a (arm-v7a-NEON) | >= 2.3 | OpenCV_2.4.3.2_Manager_2.4_armv7a-neon.apk |
|
||||
+----------------------------+-----------------+-----------------------------------------------------+
|
||||
| armeabi-v7a (arm-v7a-NEON) | 2.2 | OpenCV_2.4.3.2_Manager_2.4_armv7a-neon-android8.apk |
|
||||
+----------------------------+-----------------+-----------------------------------------------------+
|
||||
+------------------------------+--------------+-----------------------------------------------------+
|
||||
|
Loading…
Reference in New Issue
Block a user