打包 Wear 应用

警告

可能不再维护以下文档和示例项目。 从 Xamarin.Android 11.1 开始,不再支持在 Android 手持应用程序中自动打包 Android Wear 应用程序。 建议改为将 Android Wear 应用程序分发为独立应用程序

Android Wear 1.0 应用与完整的 Android 应用一起打包,以便在 Google Play 上分发。

Android Wear 2.0 应用可以作为独立应用程序提交到 Google Play。

自动打包

从 Xamarin Android 5.0 开始,从 Handheld 项目向 Wear 项目创建项目引用时,Wear 应用将自动打包为 Handheld 应用中的资源。 可以使用以下步骤创建此关联:

  1. 如果 Wear 应用尚未成为 Handheld 解决方案的一部分,请右键单击解决方案节点并选择“添加”>“添加现有项目...”

  2. 导航至 Wear 应用的 .csproj 文件,选择该文件并单击“打开”。 Wear 应用项目现在应该在 Handheld 解决方案中可见。

  3. 右键单击“引用”节点,然后选择“添加引用”

  4. 在“引用管理器”对话框中,启用 Wear 项目(单击可添加复选标记),然后单击“确定”

  5. 更改 Wear 项目的包名称,使其与 Handheld 项目的包名称相匹配(可在“属性”>“Android 清单”下更改包名称)

请注意,如果 Wear 应用的包名称与 Handheld 应用的包名称不匹配,你将收到 XA5211 错误。 例如:

Error XA5211: Embedded wear app package name differs from handheld 
app package name (com.companyname.mywearapp != com.companyname.myapp). (XA5211)

若要更正此错误,请更改 Wear 应用的包名称,使其与 Handheld 应用的包名称匹配。

单击“生成”>“全部生成”时,该关联会触发将 Wear 项目自动打包到主 Handheld (Phone) 项目中的过程。 Wear 应用会自动生成,并作为资源包含在 Handheld 应用中。

Wear 应用项目生成的程序集不会用作 Handheld (Phone) 项目中的程序集引用。 生成过程执行以下操作:

  • 验证包名称是否匹配。

  • 生成 XML 并将其添加到 Handheld 项目,以将其与 Wear 应用相关联。 例如:

    <!-- Handheld (Phone) Project.csproj -->
    <ProjectReference Include="..\MyWearApp\MyWearApp.csproj">
        <Project>{D80E1FEF-653B-448C-B2AA-609C74E88340}</Project>
        <Name>MyWearApp</Name>
        <IsAppExtension>True</IsAppExtension>
    </ProjectReference>
    
  • 将 Wear 应用作为原始资源添加到 Handheld 项目

手动打包

可以使用 5.0 版之前的 Xamarin.Android 编写 Android Wear 应用,但必须按照以下手动打包说明分发应用:

  1. 确保 Wearable 项目和 Handheld (Phone) 项目具有相同的版本号和包名称。

  2. 将 Wearable 项目手动生成为“发布”版本

  3. 将步骤 (2) 中的发布 .APK 手动添加到 Handheld (Phone) 项目的“Resources/raw”目录中

  4. 在 Handheld 项目中手动添加一个新的 XML 资源“Resources/xml/wearable_app_desc.xml”,其中引用了步骤 (3) 中的 Wearable APK

    <wearableApp package="wearable.app.package.name">
        <versionCode>1</versionCode>
        <versionName>1.0</versionName>
        <rawPathResId>NAME_OF_APK_FROM_STEP_3</rawPathResId>
    </wearableApp>
    
  5. 将元素<meta-data />手动添加到与新 XML 资源引用的“手持”项目的AndroidManifest.xml<application>元素:

    <meta-data android:name="com.google.android.wearable.beta.app"
        android:resource="@xml/wearable_app_desc"/>
    

另请参阅 Android 开发人员站点的手动打包说明