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 · 13 comments
Open

Support HarmonyOS #1166

chengxingen opened this issue Dec 18, 2023 · 13 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!

@ldpGitHub
Copy link

ldpGitHub commented Jul 9, 2024

Harmony Next OS is now in beta. You can visit their website:
https://developer.huawei.com/en/ @greenrobot-team @greenrobot
You can contact them to receive a phone with Harmony Next and access the developer documentation

@ldpGitHub
Copy link

Most popular apps in China have already started their adoption work on Harmony Next. Therefore, there is indeed a requirement for a database. If you need more information, feel free to ask

@greenrobot
Copy link
Member

greenrobot commented Jul 10, 2024

Are there some deep links on what has to be done?

PS.: again, these are the likely areas to watch:

  • Gradle plugin (or whatever build tool we need)
  • Java APIs
  • Native libraries

@ldpGitHub
Copy link

Harmony Next OS is now in beta, so I am not allowed to provide you with developer documents. You can only access the documents after Huawei gives you an account. If you need to contact a Huawei developer, I can offer you help, or you can use the link I provide to connect with Huawei directly.

@ldpGitHub
Copy link

ldpGitHub commented Jul 17, 2024

Here is some information about Harmony Next:

Build tool: Node (may be modified)
Native libraries: Node-API
Java APIs: There are no Java APIs; TypeScript is used instead
@greenrobot

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

4 participants