Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
a46166d3
Commit
a46166d3
authored
Feb 20, 2015
by
Vadim Pisarevsky
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #3710 from asmorkalov:aarc64_manager_android_5
parents
85fd5999
3649a1a1
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
66 additions
and
23 deletions
+66
-23
CMakeLists.txt
platforms/android/libinfo/CMakeLists.txt
+2
-0
CMakeLists.txt
platforms/android/service/engine/CMakeLists.txt
+4
-2
HardwareDetector.cpp
...d/service/engine/jni/BinderComponent/HardwareDetector.cpp
+6
-0
HardwareDetector.h
...oid/service/engine/jni/BinderComponent/HardwareDetector.h
+1
-1
CommonPackageManager.cpp
...service/engine/jni/NativeService/CommonPackageManager.cpp
+5
-0
PackageInfo.cpp
.../android/service/engine/jni/NativeService/PackageInfo.cpp
+13
-12
PackageInfo.h
...ms/android/service/engine/jni/NativeService/PackageInfo.h
+1
-1
HardwareDetectionTest.cpp
...ndroid/service/engine/jni/Tests/HardwareDetectionTest.cpp
+8
-0
PackageInfoTest.cpp
...orms/android/service/engine/jni/Tests/PackageInfoTest.cpp
+7
-0
PackageManagmentTest.cpp
...android/service/engine/jni/Tests/PackageManagmentTest.cpp
+10
-0
HardwareDetector.java
...ervice/engine/src/org/opencv/engine/HardwareDetector.java
+1
-1
ManagerActivity.java
...engine/src/org/opencv/engine/manager/ManagerActivity.java
+7
-5
cmake_android_service.sh
platforms/scripts/cmake_android_service.sh
+1
-1
No files found.
platforms/android/libinfo/CMakeLists.txt
View file @
a46166d3
...
...
@@ -10,6 +10,8 @@ if(NOT ANDROID_PACKAGE_PLATFORM)
else
()
set
(
ANDROID_PACKAGE_PLATFORM armv7a
)
endif
()
elseif
(
ARM64_V8A
)
set
(
ANDROID_PACKAGE_PLATFORM aarch64
)
elseif
(
ARMEABI_V6
)
set
(
ANDROID_PACKAGE_PLATFORM armv6
)
elseif
(
ARMEABI
)
...
...
platforms/android/service/engine/CMakeLists.txt
View file @
a46166d3
...
...
@@ -12,14 +12,16 @@ if(ARMEABI_V7A)
else
()
set
(
ANDROID_PLATFORM_VERSION_CODE
"3"
)
endif
()
elseif
(
ARM64_V8A
)
set
(
ANDROID_PLATFORM_VERSION_CODE
"4"
)
elseif
(
ARMEABI_V6
)
set
(
ANDROID_PLATFORM_VERSION_CODE
"1"
)
elseif
(
ARMEABI
)
set
(
ANDROID_PLATFORM_VERSION_CODE
"1"
)
elseif
(
X86
)
set
(
ANDROID_PLATFORM_VERSION_CODE
"4"
)
elseif
(
MIPS
)
set
(
ANDROID_PLATFORM_VERSION_CODE
"5"
)
elseif
(
MIPS
)
set
(
ANDROID_PLATFORM_VERSION_CODE
"6"
)
else
()
message
(
WARNING
"Can not automatically determine the value for ANDROID_PLATFORM_VERSION_CODE"
)
endif
()
...
...
platforms/android/service/engine/jni/BinderComponent/HardwareDetector.cpp
View file @
a46166d3
...
...
@@ -39,6 +39,12 @@ int GetCpuID()
#else
result
=
ARCH_UNKNOWN
;
#endif
#elif defined(__aarch64__)
#ifdef __SUPPORT_AARCH64
result
|=
ARCH_AARCH64
;
#else
result
=
ARCH_UNKNOWN
;
#endif
#elif defined(__arm__)
LOGD
(
"Using ARM HW detector"
);
it
=
cpu_info
.
find
(
"Processor"
);
...
...
platforms/android/service/engine/jni/BinderComponent/HardwareDetector.h
View file @
a46166d3
...
...
@@ -9,7 +9,7 @@
#define ARCH_ARMv5 67108864L
#define ARCH_ARMv6 134217728L
#define ARCH_ARMv7 268435456L
#define ARCH_A
RMv8
536870912L
#define ARCH_A
ARCH64
536870912L
#define ARCH_MIPS 1073741824L
#define FEATURES_HAS_VFPv3d16 1L
...
...
platforms/android/service/engine/jni/NativeService/CommonPackageManager.cpp
View file @
a46166d3
...
...
@@ -208,6 +208,11 @@ std::vector<std::pair<int, int> > CommonPackageManager::InitArmRating()
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_TEGRA4
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_VFPv4
|
FEATURES_HAS_NEON
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_TEGRA5
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_VFPv4
|
FEATURES_HAS_NEON
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_UNKNOWN
,
ARCH_AARCH64
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_UNKNOWN
,
ARCH_AARCH64
|
FEATURES_HAS_VFPv3
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_UNKNOWN
,
ARCH_AARCH64
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_VFPv4
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_UNKNOWN
,
ARCH_AARCH64
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_NEON
));
return
result
;
}
...
...
platforms/android/service/engine/jni/NativeService/PackageInfo.cpp
View file @
a46166d3
...
...
@@ -302,20 +302,13 @@ PackageInfo::PackageInfo(int version, int platform, int cpu_id, std::string inst
}
#endif
}
else
if
(
ARCH_ARMv8
&
CpuID
)
#ifdef __SUPPORT_AARCH64
else
if
(
ARCH_AARCH64
&
CpuID
)
{
LOGD
(
"PackageInfo::PackageInfo: package arch ARMv8"
);
#ifdef __SUPPORT_ARMEABI_V8
FullName
+=
string
(
"_"
)
+
ARCH_ARMv8_NAME
;
#else
FullName
+=
string
(
"_"
)
+
ARCH_ARMv7_NAME
;
#endif
//string features = JoinARMFeatures(CpuID);
//if (!features.empty())
//{
// FullName += string("_") + features;
//}
LOGD
(
"PackageInfo::PackageInfo: package arch AARCH64"
);
FullName
+=
string
(
"_"
)
+
ARCH_AARCH64_NAME
;
}
#endif
#ifdef __SUPPORT_MIPS
else
if
(
ARCH_MIPS
&
CpuID
)
{
...
...
@@ -460,14 +453,22 @@ InstallPath(install_path)
{
CpuID
=
ARCH_ARMv7
|
SplitARMFeatures
(
features
);
}
#ifdef __SUPPORT_AARCH64
else
if
(
ARCH_AARCH64_NAME
==
features
[
2
])
{
CpuID
=
ARCH_AARCH64
|
SplitARMFeatures
(
features
);
}
#endif
else
if
(
ARCH_X86_NAME
==
features
[
2
])
{
CpuID
=
ARCH_X86
|
SplitIntelFeatures
(
features
);
}
#ifdef __SUPPORT_INTEL_x64
else
if
(
ARCH_X64_NAME
==
features
[
2
])
{
CpuID
=
ARCH_X64
|
SplitIntelFeatures
(
features
);
}
#endif
#ifdef __SUPPORT_MIPS
else
if
(
ARCH_MIPS_NAME
==
features
[
2
])
{
...
...
platforms/android/service/engine/jni/NativeService/PackageInfo.h
View file @
a46166d3
...
...
@@ -10,7 +10,7 @@
#define ARCH_ARMv5_NAME "armv5"
#define ARCH_ARMv6_NAME "armv6"
#define ARCH_ARMv7_NAME "armv7a"
#define ARCH_A
RMv8_NAME "armv8
"
#define ARCH_A
ARCH64_NAME "aarch64
"
#define FEATURES_HAS_VFPv3d16_NAME "vfpv3d16"
#define FEATURES_HAS_VFPv3_NAME "vfpv3"
...
...
platforms/android/service/engine/jni/Tests/HardwareDetectionTest.cpp
View file @
a46166d3
...
...
@@ -146,11 +146,19 @@ TEST(CpuID, CheckMips)
EXPECT_TRUE
(
cpu_id
&
ARCH_MIPS
);
}
#endif
#elif defined(__aarch64__)
TEST
(
CpuID
,
CheckAarch64
)
{
int
cpu_id
=
GetCpuID
();
EXPECT_TRUE
(
cpu_id
&
ARCH_AARCH64
);
}
#else
# if defined(__arm__) && defined(USE_TEGRA_HW_DETECTOR)
TEST
(
TegraDetector
,
Detect
)
{
EXPECT_TRUE
(
DetectTegra
()
!=
0
);
}
# endif
TEST
(
CpuID
,
CheckArmV7
)
{
...
...
platforms/android/service/engine/jni/Tests/PackageInfoTest.cpp
View file @
a46166d3
...
...
@@ -52,6 +52,13 @@ TEST(PackageInfo, FullNameArmv7VFPv3Neon)
#endif
}
TEST
(
PackageInfo
,
FullNameAarch64
)
{
PackageInfo
info
(
2041000
,
PLATFORM_UNKNOWN
,
ARCH_AARCH64
);
string
name
=
info
.
GetFullName
();
EXPECT_STREQ
(
"org.opencv.lib_v24_aarch64"
,
name
.
c_str
());
}
TEST
(
PackageInfo
,
FullNameArmv5
)
{
PackageInfo
info
(
2030000
,
PLATFORM_UNKNOWN
,
ARCH_ARMv5
);
...
...
platforms/android/service/engine/jni/Tests/PackageManagmentTest.cpp
View file @
a46166d3
...
...
@@ -54,6 +54,16 @@ TEST(PackageManager, GetPackagePathForArmv7)
EXPECT_STREQ
(
"/data/data/org.opencv.lib_v23_armv7a/lib"
,
path
.
c_str
());
}
#ifdef __SUPPORT_AARCH64
TEST
(
PackageManager
,
GetPackagePathForAarch64
)
{
PackageManagerStub
pm
;
EXPECT_TRUE
(
pm
.
InstallVersion
(
2041100
,
PLATFORM_UNKNOWN
,
ARCH_AARCH64
));
string
path
=
pm
.
GetPackagePathByVersion
(
2041100
,
PLATFORM_UNKNOWN
,
ARCH_AARCH64
);
EXPECT_STREQ
(
"/data/data/org.opencv.lib_v24_aarch64/lib"
,
path
.
c_str
());
}
#endif
TEST
(
PackageManager
,
GetPackagePathForArmv7Neon
)
{
PackageManagerStub
pm
;
...
...
platforms/android/service/engine/src/org/opencv/engine/HardwareDetector.java
View file @
a46166d3
...
...
@@ -10,7 +10,7 @@ public class HardwareDetector
public
static
final
int
ARCH_ARMv5
=
0x04000000
;
public
static
final
int
ARCH_ARMv6
=
0x08000000
;
public
static
final
int
ARCH_ARMv7
=
0x10000000
;
public
static
final
int
ARCH_A
RMv8
=
0x20000000
;
public
static
final
int
ARCH_A
ARCH64
=
0x20000000
;
public
static
final
int
ARCH_MIPS
=
0x40000000
;
// Platform specific features
...
...
platforms/android/service/engine/src/org/opencv/engine/manager/ManagerActivity.java
View file @
a46166d3
...
...
@@ -7,6 +7,7 @@ import java.util.StringTokenizer;
import
org.opencv.engine.HardwareDetector
;
import
org.opencv.engine.MarketConnector
;
import
org.opencv.engine.OpenCVEngineInterface
;
import
org.opencv.engine.OpenCVEngineService
;
import
org.opencv.engine.OpenCVLibraryInfo
;
import
org.opencv.engine.R
;
import
android.annotation.TargetApi
;
...
...
@@ -140,11 +141,11 @@ public class ManagerActivity extends Activity
}
else
if
((
CpuId
&
HardwareDetector
.
ARCH_ARMv7
)
==
HardwareDetector
.
ARCH_ARMv7
)
{
HardwarePlatformView
.
setText
(
"ARM v7 "
+
JoinArmFeatures
(
CpuId
));
HardwarePlatformView
.
setText
(
"ARM v7
a
"
+
JoinArmFeatures
(
CpuId
));
}
else
if
((
CpuId
&
HardwareDetector
.
ARCH_A
RMv8
)
==
HardwareDetector
.
ARCH_ARMv8
)
else
if
((
CpuId
&
HardwareDetector
.
ARCH_A
ARCH64
)
==
HardwareDetector
.
ARCH_AARCH64
)
{
HardwarePlatformView
.
setText
(
"A
RM v8
"
+
JoinArmFeatures
(
CpuId
));
HardwarePlatformView
.
setText
(
"A
ARCH64 (ARM64 v8a)
"
+
JoinArmFeatures
(
CpuId
));
}
else
if
((
CpuId
&
HardwareDetector
.
ARCH_MIPS
)
==
HardwareDetector
.
ARCH_MIPS
)
{
...
...
@@ -220,7 +221,8 @@ public class ManagerActivity extends Activity
public
void
onReceive
(
Context
context
,
Intent
intent
)
{
Log
.
d
(
"OpenCVManager/Receiver"
,
"Broadcast message "
+
intent
.
getAction
()
+
" receiver"
);
Log
.
d
(
"OpenCVManager/Receiver"
,
"Filling package list on broadcast message"
);
if
(!
bindService
(
new
Intent
(
"org.opencv.engine.BIND"
),
new
OpenCVEngineServiceConnection
(),
Context
.
BIND_AUTO_CREATE
))
if
(!
bindService
(
new
Intent
(
"org.opencv.engine.BIND"
),
new
OpenCVEngineServiceConnection
(),
Context
.
BIND_AUTO_CREATE
))
{
TextView
EngineVersionView
=
(
TextView
)
findViewById
(
R
.
id
.
EngineVersionValue
);
EngineVersionView
.
setText
(
"not avaliable"
);
...
...
@@ -251,7 +253,7 @@ public class ManagerActivity extends Activity
if
(
HardwareDetector
.
mIsReady
)
{
Log
.
d
(
TAG
,
"Filling package list on resume"
);
OpenCVEngineServiceConnection
connection
=
new
OpenCVEngineServiceConnection
();
if
(!
bindService
(
new
Intent
(
"org.opencv.engine.BIND"
),
connection
,
Context
.
BIND_AUTO_CREATE
))
{
if
(!
bindService
(
new
Intent
(
this
,
OpenCVEngineService
.
class
),
connection
,
Context
.
BIND_AUTO_CREATE
))
{
Log
.
e
(
TAG
,
"Cannot bind to OpenCV Manager service!"
);
TextView
EngineVersionView
=
(
TextView
)
findViewById
(
R
.
id
.
EngineVersionValue
);
if
(
EngineVersionView
!=
null
)
...
...
platforms/scripts/cmake_android_service.sh
View file @
a46166d3
...
...
@@ -4,4 +4,4 @@ cd `dirname $0`/..
mkdir
-p
build_android_service
cd
build_android_service
cmake
-DCMAKE_TOOLCHAIN_FILE
=
../android/android.toolchain.cmake
-DANDROID_TOOLCHAIN_NAME
=
"arm-linux-androideabi-4.
4.3
"
-DANDROID_STL
=
stlport_static
-DANDROID_STL_FORCE_FEATURES
=
OFF
-DBUILD_ANDROID_SERVICE
=
ON
-DANDROID_SOURCE_TREE
=
~/Projects/AndroidSource/ServiceStub/
$@
../..
cmake
-DCMAKE_TOOLCHAIN_FILE
=
../android/android.toolchain.cmake
-DANDROID_TOOLCHAIN_NAME
=
"arm-linux-androideabi-4.
6
"
-DANDROID_STL
=
stlport_static
-DANDROID_STL_FORCE_FEATURES
=
OFF
-DBUILD_ANDROID_SERVICE
=
ON
-DANDROID_SOURCE_TREE
=
~/Projects/AndroidSource/ServiceStub/
$@
../..
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment