Android Wear开发 - 数据通讯 - 第零节 : 打包Wear应用(手机和手表应用如何连接)
之所以将打包这一特殊的内容作为数据通讯的第零节,是因为如果没有通过配置打包的一些信息,则没有办法将手机端应用和手表端应用连接起来,则无法继续进行接下来的数据通讯的开发。
以下依然只针对Eclipse平台,Android Studio平台可以查阅官网教程。本文是对官网文档的手动打包进行补充。
Wear工程
正确地配置Manifest文件:
package="com.example.weardemo"
android:versionCode=""
android:versionName="1.0"
注意:Wear工程的包名必须和手机工程的包名保持一致。
版本名和版本号不需要和手机工程中Manifest保持一致,可独立控制。
导入必要的库:
Google Support Library : 提供android.support.v4.app.NotificationCompat.WearableExtender:用于实现手表卡片通知的适配
Google Play Services:提供com.google.android.gms.wearable:用于实现手机和Wear的数据传输功能(至少是5.0以上的版本)
Google Repository : 提供android.support.wearable:实现Wear的自定义界面
签名打包Wear的APK
Wear工程的签名必须和手机工程的签名保持一致。即Debug Key(直接运行工程)和Release Key不能混淆着用,否则会导致数据通讯失败。
若用ant打包,proguard混淆时,注意不要混淆了通讯模块
-keep class com.google.android.gms.wearable.** { *;}
-keep class com.google.android.gms.common.** { *;}
Phone工程
将Wear打包好的APK放到Phone工程下的/res/raw目录下,这里笔者将APK重命名为wearable_app.apk。(命名注意符合规范[a-z0-9_.],不能有大写)
在/res/xml目录下创建wear的参数配置文件,命名为wearable_app_desc.xml
<?xml version="1.0" encoding="utf-8"?>
<wearableApp xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.weardemo"
>
<versionCode></versionCode>
<versionName>1.0</versionName>
<rawPathResId>wearable_app</rawPathResId>
</wearableApp>
注意:这里的包名,版本名,版本号要和wear工程的Manifest配置一致,rawPathResId对应的是第一步中的APK名
配置Manifest文件:
Wear应用的参数信息:
<meta-data
android:name="com.google.android.wearable.beta.app"
android:resource="@xml/wearable_app_desc" />
谷歌服务参数:
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
添加所需的权限
签名打包APK:注意点与Wear工程一致
开发心得
在调试Wear工程时,并不需要每次将APK打包放到Phone工程下,只需要直接运行安装到手表上,就可以直接覆盖apk
Android Wear开发 - 数据通讯 - 第零节 : 打包Wear应用(手机和手表应用如何连接)的更多相关文章
- Android Wear开发 - 数据通讯 - 第四节 : 数据封装(解决不能序列化问题)
一. 前言 背景 一开始笔者在研究数据发送与接收的时候,看到Wear数据类DataMap除了可以put基本类型外,还有个fromBundle方法来构建一个DataMap对象.所以一口气的将原本功能上的 ...
- Android Wear开发 - 数据通讯 - 第二节 : 数据的发送与接收
本节由介绍3种数据的发送接收:1.Data Items : 比特类型数据,限制100KB以内2.Assets : 资源类型数据,大小无上限3.Message : 发送消息,触发指令 http://de ...
- Android Wear开发 - 数据通讯 - 第三节 : 事件处理
http://developer.android.com/training/wearables/data-layer/events.html 以下是本人在学习官方开发文档时的笔记,主要是翻译为主,并在 ...
- Android Wear开发 - 数据通讯 - 第一节 : 连接数据层
http://developer.android.com/training/wearables/data-layer/accessing.html Accessing the Wearable Dat ...
- C#-Xamarin的Android项目开发(三)——发布、部署、打包
前言 部署,通常的情况下,它其实也是项目开发的一个难点. 为什么这么说呢?因为,它不是代码开发,所以很多开发者本能的拒绝学习它. 并且一个项目配置好一次以后,部署的步骤和部署的人通常很固定,所以大部分 ...
- Android应用开发-数据存储和界面展现(二)(重制版)
SQLite数据库 // 自定义类MyOpenHelper继承自SQLiteOpenHelper MyOpenHelper oh = new MyOpenHelper(getContext(), &q ...
- Android应用开发-数据存储和界面展现(一)(重制版)
常见布局 相对布局(RelativeLayout) 相对布局下控件默认位置都是左上角(左对齐.顶部对齐父元素),控件之间可以重叠 可以相对于父元素上下左右对齐,相对于父元素水平居中.竖直居中.水平竖直 ...
- Android应用开发-数据存储和界面展现(二)
SQLite数据库 // 自定义类MyOpenHelper继承自SQLiteOpenHelper MyOpenHelper oh = new MyOpenHelper(getContext(), &q ...
- Android应用开发-数据存储和界面展现(一)
常见布局 相对布局(RelativeLayout) 相对布局下控件默认位置都是左上角(左对齐.顶部对齐父元素),控件之间可以重叠 可以相对于父元素上下左右对齐,相对于父元素水平居中.竖直居中.水平竖直 ...
随机推荐
- [RxJS] Utility operator: do
We just saw map which is a transformation operator. There are a couple of categories of operators, s ...
- POJ 3094 Quicksum(简单的问题)
[简要题意]:题意是非常easy. 看样能理解 [分析]:略. 读取字符串. // 200K 0Ms #include<iostream> using namespace std; int ...
- Objective-C通过联合存储为类增加属性及原理解析
联合存储实现方式及底层原理解析 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory_tjsd/article/details/9347981 转载请注明出处 ...
- .net 安装Swagger
官网:http://swagger.io/ 教程:http://www.wmpratt.com/swagger-and-asp-net-web-api-part-1/ 1:安装Dll: https:/ ...
- git代码库的使用
代码库/使用指南 http://learn.zone.jd.com/cmsuser/index.htm 在win7系统下使用TortoiseGit(乌龟git)简单操作Git@OSC http://m ...
- Unity 5.x---00使用重力
Unity 5.x---00使用重力 步骤一: 打开一个工程(导入Unity自带的资源),并创建并配置好必要的GameObject ,如下图: 步骤二: 1.创建一个Cube,使其位于平面上方. ...
- javascript——可以判断值的类型的函数
function classof(o){ return Object.prototype.toString.call(0).slice(8,-1); } Function.prototype.getN ...
- chop 与 chomp 的对比
chop 截去最后一个字符,无论是什么字符 chomp 截去末尾的分隔符(\n),行分隔符由$/决定 $a="ab\n\n\n"; #截去多个空行. $/=&quo ...
- 运用BeanUtils构建通用的查询 更新方法(个人拙作,不喜勿喷)
------------------------------------更新方法----------------------------------- public void update(Strin ...
- Shell脚本——DHCP自动部署
详细说明参考: (三)跟我一起玩Linux网络服务:DHCP服务配置之主服务器配置 #! /bin/bash IPSAG="10.10.10" DNSIP="10.10. ...