हमारा सुझाव है कि 27 मार्च, 2025 से AOSP को बनाने और उसमें योगदान देने के लिए, aosp-main
के बजाय android-latest-release
का इस्तेमाल करें. ज़्यादा जानकारी के लिए, AOSP में हुए बदलाव लेख पढ़ें.
एक्सपोर्ट किए जाने वाले कॉन्स्टेंट
संग्रह की मदद से व्यवस्थित रहें
अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.
अगर कोई इंटरफ़ेस Java के साथ काम नहीं करता है (उदाहरण के लिए, यूनियन का इस्तेमाल करता है), तो भी कॉन्स्टेंट (एनोटेशन की वैल्यू) को Java वर्ल्ड में एक्सपोर्ट करना बेहतर हो सकता है. इस स्थिति में, hidl-gen -Ljava-constants
…
की मदद ली जा सकती है. यह पैकेज में मौजूद इंटरफ़ेस फ़ाइल(फ़ाइलों) से एनोटेट की गई एनम डेक्लेरेशन को निकालता है और [PACKAGE-NAME]-V[PACKAGE-VERSION]-java-constants
नाम की एक Java लाइब्रेरी बनाता है. एक्सपोर्ट किए जाने वाले हर सूची के एलान के लिए, इस तरह से एनोटेट करें:
@export
enum Foo : int32_t {
SOME_VALUE,
SOME_OTHER_VALUE,
};
ज़रूरत पड़ने पर, एनोटेशन-पैरामीटर name
जोड़कर, इस टाइप को Java वर्ल्ड में जिस नाम से एक्सपोर्ट किया जाता है वह इंटरफ़ेस एलान में चुने गए नाम से अलग हो सकता है:
@export(name="JavaFoo")
enum Foo : int32_t {
SOME_VALUE,
SOME_OTHER_VALUE,
};
अगर Java कन्वेंशन या निजी प्राथमिकता में एनम टाइप की वैल्यू में एक सामान्य प्रीफ़िक्स जोड़ने के लिए कहा जाता है, तो एनोटेशन-पैरामीटर का इस्तेमाल करें value_prefix
:
// File "types.hal".
package android.hardware.bar@1.0;
@export(name="JavaFoo", value_prefix="JAVA_")
enum Foo : int32_t {
SOME_VALUE,
SOME_OTHER_VALUE,
};
इससे बनी Java क्लास कुछ इस तरह दिखती है:
package android.hardware.bar.V1_0;
public class Constants {
public final class JavaFoo {
public static final int JAVA_SOME_VALUE = 0;
public static final int JAVA_SOME_OTHER_VALUE = 1;
};
};
आखिर में, types.hal
में एनोटेट किए गए 'enum' टाइप के लिए, Java टाइप का एलान, दिए गए पैकेज में क्लास Constants
में किया जाता है. किसी इंटरफ़ेस के चाइल्ड के तौर पर एलान किए गए एनम टाइप, उस इंटरफ़ेस की Java क्लास के एलान के तहत ग्रुप किए जाते हैं.
इस पेज पर मौजूद कॉन्टेंट और कोड सैंपल कॉन्टेंट के लाइसेंस में बताए गए लाइसेंस के हिसाब से हैं. Java और OpenJDK, Oracle और/या इससे जुड़ी हुई कंपनियों के ट्रेडमार्क या रजिस्टर किए हुए ट्रेडमार्क हैं.
आखिरी बार 2025-07-27 (UTC) को अपडेट किया गया.
[[["समझने में आसान है","easyToUnderstand","thumb-up"],["मेरी समस्या हल हो गई","solvedMyProblem","thumb-up"],["अन्य","otherUp","thumb-up"]],[["वह जानकारी मौजूद नहीं है जो मुझे चाहिए","missingTheInformationINeed","thumb-down"],["बहुत मुश्किल है / बहुत सारे चरण हैं","tooComplicatedTooManySteps","thumb-down"],["पुराना","outOfDate","thumb-down"],["अनुवाद से जुड़ी समस्या","translationIssue","thumb-down"],["सैंपल / कोड से जुड़ी समस्या","samplesCodeIssue","thumb-down"],["अन्य","otherDown","thumb-down"]],["आखिरी बार 2025-07-27 (UTC) को अपडेट किया गया."],[],[],null,["# Export constants\n\nIn cases where an interface isn't Java-compatible (because it uses unions\nfor example) it might still be desirable to export the constants (enum values) to\nthe Java world. This scenario is supported by `hidl-gen -Ljava-constants\n...` which extracts annotated enum declarations from the interface\nfile(s) in a package and produces a java library named\n`[PACKAGE-NAME]-V[PACKAGE-VERSION]-java-constants`. Annotate each\nenum declaration to be exported as follows: \n\n```java\n@export\nenum Foo : int32_t {\n SOME_VALUE,\n SOME_OTHER_VALUE,\n};\n```\n\nIf necessary, the name under which this type is exported to the Java world\ncan be different from that chosen in the interface declaration by adding the\nannotation-parameter `name`: \n\n```java\n@export(name=\"JavaFoo\")\nenum Foo : int32_t {\n SOME_VALUE,\n SOME_OTHER_VALUE,\n};\n```\n\nIf Java conventions or personal preference ask for a common prefix to be\nadded to the enum type's values, use the annotation-parameter\n`value_prefix`: \n\n```java\n// File \"types.hal\".\n\npackage android.hardware.bar@1.0;\n\n@export(name=\"JavaFoo\", value_prefix=\"JAVA_\")\nenum Foo : int32_t {\n SOME_VALUE,\n SOME_OTHER_VALUE,\n};\n```\n\nThe resulting Java class appears as follows: \n\n```java\npackage android.hardware.bar.V1_0;\n\npublic class Constants {\n public final class JavaFoo {\n public static final int JAVA_SOME_VALUE = 0;\n public static final int JAVA_SOME_OTHER_VALUE = 1;\n };\n};\n```\n\nFinally, Java type declaration for enum types declared in\n`types.hal` are grouped inside a class `Constants` in the\ngiven package. Enum types declared as children of an interface are grouped\nunder that interface's Java class declaration."]]