Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support HarmonyOS #1166

Open
chengxingen opened this issue Dec 18, 2023 · 8 comments
Open

Support HarmonyOS #1166

chengxingen opened this issue Dec 18, 2023 · 8 comments
Labels
enhancement New feature or request

Comments

@chengxingen
Copy link

Can the objectbox library support Harmony os? Harmony os runs on Huawei mobile phones, and its sdk has many similarities with android sdk.

@chengxingen chengxingen added the enhancement New feature or request label Dec 18, 2023
@greenrobot-team
Copy link
Member

greenrobot-team commented Dec 18, 2023

Thanks for the suggestion! For anyone else interested, please thumbs up the first comment. This helps us track interest.

Based on a quick search, it appears support for compiling native C++ code exists. This would be required to compile the ObjectBox core library for Harmony OS. But I can't find any docs on how to do it. So this may be possible, but not sure.

@greenrobot-team greenrobot-team changed the title Support Harmony os Support HarmonyOS Dec 18, 2023
@chengxingen
Copy link
Author

chengxingen commented Dec 19, 2023

Thanks for the suggestion! For anyone else interested, please thumbs up the first comment. This helps us track interest.

Based on a quick search, it appears support for compiling native C++ code exists. This would be required to compile the ObjectBox core library for Harmony OS. But I can't find any docs on how to do it. So this may be possible, but not sure.

Harmony OS's main market is in China and has been widely used. Here is its development documentation link.As a mobile application developer, I have used many libraries related to data storage, but so far only objectbox has the highest efficiency,and it is the best. Therefore, I hope to support Harmony OS.Thank you!

@greenrobot
Copy link
Member

So you are saying it's not compatible with Android? According to Wikipedia it's based on Android.

@chengxingen
Copy link
Author

So you are saying it's not compatible with Android? According to Wikipedia it's based on Android.

HarmonyOs is not AndroidOs,although their APIs have many similarities.For example, the objectbox uses the Context class,In Android SDK, its path is android.content.Context, but in Harmony SDK, its path is ohos.app.Context,this can lead to some compilation issues.Additionally, there are issues with plugins that are not supported.

@chengxingen
Copy link
Author

chengxingen commented Dec 19, 2023

So you are saying it's not compatible with Android? According to Wikipedia it's based on Android.

HarmonyOs is not AndroidOs,although their APIs have many similarities.For example, the objectbox uses the Context class,In Android SDK, its path is android.content.Context, but in Harmony SDK, its path is ohos.app.Context,this can lead to some compilation issues.Additionally, there are issues with plugins that are not supported.

This is an error message that is not supported by the plugin:

An exception occurred applying plugin request [id: 'io.objectbox']

Failed to apply plugin 'io.objectbox'.
'io.objectbox' can only be applied to a project if one of the following is applied before:
* an Android plugin
* the Kotlin Android or JVM plugin
* the Java Library, Java Application or Java plugin

@chengxingen
Copy link
Author

So you are saying it's not compatible with Android? According to Wikipedia it's based on Android.

HarmonyOs is not AndroidOs,although their APIs have many similarities.For example, the objectbox uses the Context class,In Android SDK, its path is android.content.Context, but in Harmony SDK, its path is ohos.app.Context,this can lead to some compilation issues.Additionally, there are issues with plugins that are not supported.

This is an error message that is not supported by the plugin:

An exception occurred applying plugin request [id: 'io.objectbox']

Failed to apply plugin 'io.objectbox'.
'io.objectbox' can only be applied to a project if one of the following is applied before:

  • an Android plugin
  • the Kotlin Android or JVM plugin
  • the Java Library, Java Application or Java plugin

I can use the objectbox in the HarmonyOs project by creating a Java library, which is supported by the plugin. However, because the objectbox uses reflection to call some Android APIs, Harmony SDK does not support Android APIs, so errors may also occur when loading so files.

@greenrobot
Copy link
Member

So, we have at least 3 eras, in which Harmony OS could be different:

  1. Gradle plugin (or whatever build tool we need)
  2. Java APIs
  3. Native libraries

And there seems to be also Harmony OS NEXT, which has a micro-kernel and thus could be different in many other ways too.

At this point it's not clear if we want to support it; it will depend on mainly two things, I guess. First, the amount of community support we would get. Second, how big the differences actually are.

@chengxingen
Copy link
Author

So, we have at least 3 eras, in which Harmony OS could be different:

  1. Gradle plugin (or whatever build tool we need)
  2. Java APIs
  3. Native libraries

And there seems to be also Harmony OS NEXT, which has a micro-kernel and thus could be different in many other ways too.

At this point it's not clear if we want to support it; it will depend on mainly two things, I guess. First, the amount of community support we would get. Second, how big the differences actually are.

Understood, thank you very much,looking forward to your support!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants