Skip to content
This repository was archived by the owner on Oct 10, 2025. It is now read-only.

Build Java bindings for Android ARMv8-A platform - #5248

Merged
mewim merged 3 commits into
masterfrom
android-jni
Apr 19, 2025
Merged

mewim merged 3 commits into
masterfrom
android-jni

Conversation

@mewim

@mewim mewim commented Apr 19, 2025

Copy link
Copy Markdown
Contributor

No description provided.

@codecov

codecov Bot commented Apr 19, 2025

Copy link
Copy Markdown

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 86.99%. Comparing base (1e765e2) to head (0dd4a33).
Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #5248      +/-   ##
==========================================
- Coverage   86.99%   86.99%   -0.01%     
==========================================
  Files        1413     1413              
  Lines       62233    62233              
  Branches     7624     7625       +1     
==========================================
- Hits        54141    54140       -1     
- Misses       7917     7918       +1     
  Partials      175      175              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

Copy link
Copy Markdown

Benchmark Result

Master commit hash: 1e765e2bdc9aea55c96c34d7821cf4df7ee08a2c
Branch commit hash: 81bca18dda7106a148a73be1f649d15fc1d5e5a7

Query Group Query Name Mean Time - Commit (ms) Mean Time - Master (ms) Diff
aggregation q24 723.56 725.85 -2.29 (-0.32%)
aggregation q28 6562.61 6537.00 25.61 (0.39%)
filter q14 125.10 125.41 -0.31 (-0.24%)
filter q15 122.73 124.35 -1.62 (-1.30%)
filter q16 346.65 343.94 2.71 (0.79%)
filter q17 444.70 445.92 -1.22 (-0.27%)
filter q18 1936.69 1935.01 1.68 (0.09%)
filter zonemap-node 90.08 89.91 0.18 (0.20%)
filter zonemap-node-lhs-cast 90.25 90.58 -0.33 (-0.36%)
filter zonemap-node-null 89.55 89.83 -0.29 (-0.32%)
filter zonemap-rel 5685.52 5704.71 -19.19 (-0.34%)
fixed_size_expr_evaluator q07 679.10 677.74 1.36 (0.20%)
fixed_size_expr_evaluator q08 963.66 962.52 1.14 (0.12%)
fixed_size_expr_evaluator q09 961.40 970.14 -8.74 (-0.90%)
fixed_size_expr_evaluator q10 257.65 253.23 4.42 (1.75%)
fixed_size_expr_evaluator q11 256.69 254.02 2.67 (1.05%)
fixed_size_expr_evaluator q12 235.03 233.37 1.66 (0.71%)
fixed_size_expr_evaluator q13 1594.15 1588.23 5.92 (0.37%)
fixed_size_seq_scan q23 108.29 112.92 -4.64 (-4.11%)
join q29 719.59 783.19 -63.60 (-8.12%)
join q30 1702.10 1701.27 0.83 (0.05%)
join q31 6.35 6.86 -0.51 (-7.44%)
join SelectiveTwoHopJoin 45.60 48.09 -2.48 (-5.16%)
ldbc_snb_ic q35 9.51 10.26 -0.75 (-7.28%)
ldbc_snb_ic q36 82.50 97.19 -14.69 (-15.11%)
ldbc_snb_is q32 4.43 5.55 -1.12 (-20.15%)
ldbc_snb_is q33 12.64 14.08 -1.44 (-10.20%)
ldbc_snb_is q34 1.41 1.17 0.24 (20.26%)
limit push-down-limit-into-distinct 2048.99 2107.13 -58.14 (-2.76%)
multi-rel multi-rel-large-scan 1648.38 1631.27 17.11 (1.05%)
multi-rel multi-rel-lookup 10.86 11.47 -0.61 (-5.32%)
multi-rel multi-rel-small-scan 201.00 203.23 -2.23 (-1.10%)
order_by q25 131.01 128.62 2.39 (1.86%)
order_by q26 447.20 446.42 0.77 (0.17%)
order_by q27 1383.14 1388.99 -5.85 (-0.42%)
recursive_join recursive-join-bidirection 298.36 289.68 8.68 (3.00%)
recursive_join recursive-join-dense 7026.72 7019.79 6.93 (0.10%)
recursive_join recursive-join-path 23647.03 23414.94 232.09 (0.99%)
recursive_join recursive-join-sparse 10.74 7.97 2.77 (34.81%)
recursive_join recursive-join-trail 7001.06 7039.27 -38.22 (-0.54%)
scan_after_filter q01 170.50 171.01 -0.50 (-0.29%)
scan_after_filter q02 155.53 155.49 0.03 (0.02%)
shortest_path_ldbc100 q37 86.93 94.97 -8.04 (-8.46%)
shortest_path_ldbc100 q38 740.15 750.51 -10.36 (-1.38%)
shortest_path_ldbc100 q39 91.52 89.83 1.69 (1.88%)
shortest_path_ldbc100 q40 810.65 761.04 49.61 (6.52%)
var_size_expr_evaluator q03 2088.91 2094.04 -5.13 (-0.24%)
var_size_expr_evaluator q04 2254.15 2241.95 12.20 (0.54%)
var_size_expr_evaluator q05 2740.96 2726.69 14.27 (0.52%)
var_size_expr_evaluator q06 1346.53 1346.25 0.28 (0.02%)
var_size_seq_scan q19 1433.06 1430.84 2.22 (0.16%)
var_size_seq_scan q20 2669.00 2667.81 1.19 (0.04%)
var_size_seq_scan q21 2236.20 2243.95 -7.75 (-0.35%)
var_size_seq_scan q22 126.58 127.22 -0.64 (-0.50%)

@ray6080 ray6080 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎉

@mewim
mewim merged commit b1d3f6d into master Apr 19, 2025
@mewim
mewim deleted the android-jni branch April 19, 2025 01:55
@ray6080 ray6080 mentioned this pull request Apr 10, 2025
39 tasks
@mewim
mewim requested a review from Copilot April 19, 2025 05:13

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces support for building Java bindings targeting the Android ARMv8-A platform by adding Android detection logic in the Java native interface code, updating the JNI version for Android, and extending the GitHub workflows to build and deploy Android-compatible artifacts.

  • Added Android OS detection in Native.java for setting the correct os_name.
  • Configured JNI version selection in kuzu_java.cpp for Android and non-Android builds.
  • Added new GitHub workflow jobs for building and deploying Android ARMv8-A artifacts.

Reviewed Changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

File Description
tools/java_api/src/main/java/com/kuzudb/Native.java Added Android detection logic to set os_name based on runtime properties.
tools/java_api/src/jni/kuzu_java.cpp Updated JNI version selection based on the ANDROID flag.
.github/workflows/linux-java-workflow.yml Introduced a new job for building the Android ARMv8-A Java library.
.github/workflows/build-and-deploy.yml Modified to download and deploy the newly built Android artifact.
Comments suppressed due to low confidence (1)

.github/workflows/linux-java-workflow.yml:55

  • [nitpick] The job name 'build-linux-java-armv8a' might be misleading as it builds an Android artifact; consider renaming it to 'build-android-armv8a' for greater clarity.
build-linux-java-armv8a:

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants