2018-08-26 12:35:07 mackkill 阅读数 2288
  • 快速入门Android开发 视频 教程 android studio

    这是一门快速入门Android开发课程,顾名思义是让大家能快速入门Android开发。 学完能让你学会如下知识点: Android的发展历程 搭建Java开发环境 搭建Android开发环境 Android Studio基础使用方法 Android Studio创建项目 项目运行到模拟器 项目运行到真实手机 Android中常用控件 排查开发中的错误 Android中请求网络 常用Android开发命令 快速入门Gradle构建系统 项目实战:看美图 常用Android Studio使用技巧 项目签名打包 如何上架市场

    19365 人正在学习 去看看 任苹蜻

前言

转眼间微信小程序已经推出好几个年头了,作为一名Android开发者,一直想尝试下;正好赶上公司策略调整,在开发完App后领导想着在开发一个小程序版,基于微信庞大的用户量,微信小程序成为了首选;在完成了两三个微信小程序后,有了些心得体会,特此记录下来。鉴于篇幅,这里只说说一些基本的体会,后续会给出更多实际遇到的问题解决。

开搞

首先我们得先看下官方教程:微信小程序官方文档
如果只是体验不发布代码的话就没必要申请账号了,还有不得不说用惯了AS后再用微信的开发工具难免会吐槽一番,当然也可以使用其他的工具然后安装插件开发,这里就不做讨论了。

布局

1、在 Android里面布局代码都是写在xml里面;在小程序里面则是通过wxml(页面)+ wxss(样式);当然小程序样式也可以都写在wxml里面,类似:

<view style='width:35rpx;height:35rpx;float:right;'></view>

通过style属性也可以写样式,但是一两个还行,多了就会显得很乱。

2、Android里面子view都是在viewgroup 里面;小程序里面<view>标签既可以是子view,也可以是viewgroup,通过wxss能展示各种样式,也能显示文本。
例如:显示竖向排列的两个文本。

在Android里面:

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">Ï
            <TextView
                android:text="test"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
            <TextView
                android:text="test"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
   </LinearLayout>

小程序里面:

wxml:

<view class="parent">
    <text>test</text>
    <text>test</text>
</view>

wxss:

.parent{
  display: flex;
  flex-direction: column;
}

可以说小程序里面的flex布局和Android的LinearLayout布局很相似,flex也是推荐的布局,具体可以看教程:Flex布局教程 个人感觉写的很好。

如果要想元素都重叠,类似Android里面的FrameLayout,则需要设置position:absolute,然后通过margin、padding来定位到合适的位置。不得不说小程序的布局相比Android来说还是麻烦不少的,只能通过多练习来熟悉了。。。

3、Android里面可以通过<include> 来引入布局,小程序里面也有template布局模版,通过<import> 引入即可。

4、小程序里面布局推荐使用rpx作为尺寸单位。

业务

1、Android的业务逻辑都是写在Java文件里面,小程序里面都是写在js里面;同样的类似Android的页面生命周期,小程序也有生命周期:

  onLoad: function(options) {
    // 页面初始化
  },
  onReady: function() {
    // 页面渲染完成
  },
  onShow: function() {
    // 页面显示
  },
  onHide: function() {
    // 页面推到后台
  },
  onUnload: function() {
    // 页面关闭
  },

小程序不像Android里面可以监听页面的返回键,所以要在页面返回时处理业务可以在onUnload中处理。

2、与Android中Application类相似,小程序中app.js相当于全局入口,如果开发者有需要在小程序启动时执行的操作,就可以在 onLaunch 方法中执行。
app.js还提供了一个 globalData,用来存储整个小程序使用期间的公共数据。
在其他页面可以通过 getApp() 方法用以获取小程序的 App 实例,来使用全局公共数据。

3、如果有些需要存储的简单数据,类似Android中的SharedPreferences,小程序可以使用wx.setStorageSync("key", value); 存储;wx.getStorageSync("key"); 取出;

4、页面之间的数据传递在小程序里面只能通过路由的方式,就是在跳转链接拼接上要传递的数据:
传数据:

//let obj = JSON.stringify(obj);
wx.navigateTo({
      url: '/pages/index/index?id=' + id,
    })

接受:

 onLoad: function(options) {
 // let obj = JSON.parse(options.obj);
    let id = options.id;
  }

如果要传递对象,则可以在传递前使用JSON.stringify(obj); 将数据转成字符串,在接受时使用JSON.parse(obj); 转换回对象;

5、数据刷新;在处理完数据后我们会用this.setData({...}) 来更新数据源,但是很多初学者都会犯一个错误,看如下错误代码

wx.request({
            url: "request_url",
            success: function (res) {
                this.setData({...})
            }
        });

按照上面写程序就会报错,再看正确代码:

let that = this;
wx.request({
            url: "request_url",
            success: function (res) {
                that.setData({...})
            }
        });

两者区别在于多了一个变量 that,并且在 onLoad() 方法里面对它进行了赋值,使它等于 this。其实说白了就是一个作用域的问题;其实在Android里面我们也遇到过,就是在点击事件里面跳转设置this的时候,我们都会写上类名,类似:Intent intent =new Intent(MainActivity.this,TestActivity.class);

6:事件拦截:在Android里面会有很多事件拦截处理;小程序里面也不例外。看如下小程序布局:

<view bindtap="onclick">
   <image bindtap='tapclick'></image>
</view>

如上我给子父view都设置了bindtap点击事件,这个时候点击下去会发现两个事件都执行了,这在小程序里面称为事件冒泡;要想image被点击,view不被点击则得使用catchtap 属性;修改如下:

<view bindtap="onclick">
   <image catchtap='tapclick'></image>
</view>

这样view的点击事件就不会响应了。
ps:还有些情况是页面层级导致的,需在wxss里面使用z-index 调整页面层级。

结语

好了,今天的分享就到这里了,后续会分享一些实际使用过程中遇到问题的解决方案。
Ps:总的来说写了一段时间的js后发现这种弱语言写起来真的挺舒服,好多数据类型方面都不需要考虑,同时带来的坏处就是不便于查看调试。

最后自己闲下做了个实用的小工具,有兴趣的可以试试。
这里写图片描述

2016-09-27 15:36:05 luoyanglizi 阅读数 45225
  • 快速入门Android开发 视频 教程 android studio

    这是一门快速入门Android开发课程,顾名思义是让大家能快速入门Android开发。 学完能让你学会如下知识点: Android的发展历程 搭建Java开发环境 搭建Android开发环境 Android Studio基础使用方法 Android Studio创建项目 项目运行到模拟器 项目运行到真实手机 Android中常用控件 排查开发中的错误 Android中请求网络 常用Android开发命令 快速入门Gradle构建系统 项目实战:看美图 常用Android Studio使用技巧 项目签名打包 如何上架市场

    19365 人正在学习 去看看 任苹蜻

前言

首先要声明的是,我是一名 Android 开发者,之前基本没有前端开发经验,甚至连 JS ,HTML 都是为了开发小程序现学的一些皮毛——所以文章中所提到的一些点也许在资深前端开发者看来只是小case,但是站在一个 Android 开发者的角度来看确实是大坑。

前面就不说太多东西了,文章的末尾再谈谈我对小程序的一些看法——这篇文章主要是谈谈在开发小程序的过程中遇到的一些坑。

PS:推荐一下我写的一个微信小程序版的Gank客户端:wechat-weapp-gank

gif

正文

1,获取小程序开发工具并正确安装?

最近在一些地方看到很多人在入小程序坑的第一步就出现了很多的问题,其实很早之前(22号)关于怎样搞定小程序的开发工具就已经有比较好的资料了,大家可以直接去看一下然后照着做,基本上就没啥问题:获取小程序开发工具并正确安装的教程

2,直接在微信开发工具上写代码?

目前来讲,我们只能在微信的开发工具上编译小程序的代码,但是这并不意味着我们必须要在那个开发工具上写小程序的代码——用过那个开发工具的人就会知道,那个开发工具并没有多好用,代码提示挺弱鸡的,而且没有自动保存是硬伤。

那么怎么办呢?我们完全可以在别的工具里面写代码然后在小程序的开发工具里面编译。我试过 sublimewebstorm , 都是可以在上面开发的,但是最后还是发现 ws 更好用。我就不讲 sublime 怎么用了,大家只需要直接在里面打开项目文件夹然后点右下角选择当前的语言就可以了。接下来着重讲一讲如何在 ws 里面编写小程序代码。

首先选择小程序的目录在 ws 里面打开,这是很简单的。但是这个时候打开里面的文件之后你会发现,除了 js 代码它能认出来之外,其他的代码他都并不能够认出来——主要是 .wxml.wxss 文件。为什么呢?因为虽然 .wxml.html 文件很像,.wxss 文件和 .css 文件很像,但是编译器并不知道!这样一来,我们就无法在这两种文件里面享受 ws 强大的代码提示功能了——我们能接受这种事么?果断不能!那么接下来我们应该怎么办呢?告诉编译器,.wxml 格式的其实是 HTML 文件,.wxss 格式的其实是 CSS 文件。

告诉编译器,*.wxml* 格式的其实是 *HTML* 文件

上图把做这件事的流程讲的很详细了,.wxss 文件的转化同理。这样做了之后,编辑器就会知道他们的真实面目,然后就可以有棒棒的代码提示了(但是请注意,有写微信自己写的东西编辑器不仅没有代码提示反而会报错,不管他就好了)!接下来就可以直接 ws 一个桌面小程序开发工具一个桌面,在 ws 里面写了代码直接划过去点编译了。

3,跳转page的时候怎么传递数据?

小程序给我们开放了很好的接口来进行页面之间的跳转:

界面之间跳转

但是在这个地方微信官方对于这一个接口并没有太多的描述,只是简简单单的给了我们一行代码:wx.navigateTo({url: "test ? id = 1"}); ,其实这里这样写是有些难以理解的——test 是个什么鬼 ? id 是个什么鬼?中间那个问号是个什么鬼?这都是些什么鬼?

反正我看到的时候是一头雾水的。不过还好,经过一些摸索,终于知道了他们是啥。首先,代码里的 test 代表要跳转到的 page 的url 地址。比如:

要跳转到这个页面

那么代码就应该是:

wx.navigateTo({url: "/pages/specific/specific"});

聪明的人可能已经发现了,上面的代码没有了示例代码里面 ? id = 1 的部分,怎么回事,是我写错了么?并不是。这一部分其实是跳转 page 时用来传值的关键方法,并不必需,但很有用。

* ? 是一个分隔符一样的东西,它的后面就是所有要传到目标 page 的值。而这些值是通过键值对来一一对应的,每个键值对之间用 & 隔开。但是要注意的是,似乎这种方式传值只能传 String 过去,不是 String 类型的值传过去之后也会被转化为 String 。*比如,我传了个 arrayjson 过去:

var arrayData = ["firstData" , "secondData"];
var jsonData = {first: "firstData" , second: "secondData"};
wx.navigateTo({url: "/pages/specific/specific ? data: " + arrayData + "&json=" + jsonData});

结果目标page里接受到的是:

//目标page的onLoad方法
onLoad: function (options) {
        //结果是:firstData , secondData
        console.log(options.data);
        //结果是:f
        console.log(options.data[0]);
        //结果是:[object Object]
        console.log(options.json);
        //结果是:undefined
        console.log(options.data.first);

        //很显然,被转化了  
}

上面其实也演示了如何在目标 page 里面接收传过来的数据,直接在 onLoad() 里面的 options 取就可以了。

另外,其实更多的时候我们的需求并不是直接传一个固定的参数到目标 page 里面去,而是根据用户的一些操作传递不同的值到目标 page 里面去,这个时候该怎么办呢?要知道,我们是没有办法获得组件的(这点太坑了,没有 windowdocument)。这个时候,我们可以通过 dataset 来通过绑定组件数据达到目的。什么?你不知道 dataset 是什么东西?

dataset

多读书,多看报,多看文档少睡觉。

4,某些图片无法加载?

这个坑真的是深坑,可能很久很久都不会遇到,但是一旦遇到真的很蛋疼。

我拿来练手的项目是 Gank.io 的客户端,而 Gank 网站上的图片都是寄放在新浪图床上的,默认的存储的 url 是 http://ww{1 || 2 || 3 || 4}.xxxxx.xxxxx.jpg然后在小程序里死活都加载不出来这些图片!!!

我一开始不知道到底是小程序的 <image> 标签的问题还是图片的问题,就找了很多地方的图片来做测试,包括 CSDN 上的,简书上的,github 图床上的,结果是这些图片都可以正常显示——甚至新浪微博上的,一些人的头像,都可以显示!后来我发现,只要 URL 是 ww+数字 开头的图片,都不能正常的显示!这也太坑了。。。后来我就在思考怎么解决这个问题——要么改变 标签,他自身肯定是有问题的,可能对某些来源的图片不太友好;要么改变图片,让它去适应这个 标签。这两方面要改其实都挺难的,但是显然第一种方式基本上是不可能的,就只能在第二种方式上去下功夫。

最后经过不断地尝试,我总结了很多规律,最后通过把图片的 URL 由 ww+数字变成 ws+数字 解决了这个问题,让图片得以显示在小程序上。比如:

本来的URL:
http://ww1.sinaimg.cn/large/610dc034jw1f87z2n2taej20u011h11h.jpg
变换之后的URL:
http://ws1.sinaimg.cn/large/610dc034jw1f87z2n2taej20u011h11h.jpg

不要问我为什么这样改了就可以显示了,因为我也不知道。。。太神奇了。。。

5,this.setData() 显示没这个方法?

首先想要说的是,作为一个 Android 开发者,我非常不适应小程序的数据与控件绑定的方式。在 Android 开发的时候,我们是可以直接获得控件然后对控件做数据绑定的工作的,而在小程序里,我并不能够直接获得控件的对象,所有的数据绑定与动态修改只能通过维护 Page 里面的 data{} 以及调用 setData() 方法来进行,我不好评判这两种方式的优劣,只能说真的很不习惯。

但是有些和我一样以前没怎么接触过前端开发的朋友在做这个的时候就有可能会踩坑了——setData() 是 Page 这个层级上的方法,并不是在任何地方调用 this.setData() 方法都可以顺利的得到我们预期的结果的。比方说:

Page({
    onLoad: function (options) {
        wx.request({
            url: Constant.GET_URL,
            success: function (res) {
                this.setData({...});
            }
        });
    },
});

我在 wx.request() 的回调接口里面 success() 里面写 this.setData({...}),就不能完成预期操作,程序会报错说没有 setData() 这个方法,因为这个时候 this 获取到的已经并不是 Page 了,上下文已经发生了变化,那么当前层级没有 setData() 方法就很正常了。那么怎么解决这个问题呢?像这样:

Page({
    onLoad: function (options) {
        that = this;
        wx.request({
            url: Constant.GET_URL,
            success: function (res) {
                that.setData({...})
            }
        });
    },
});

var that;

和一开始的区别在于多了一个全局变量 that,并且在 onLoad() 方法里面对它进行了赋值,使它等于 this。这样的话,我们就可以在这个 Page 的任何地方调用 that.setData() 来动态的改变控件的属性了。

结语

本来是还有一些问题要谈一谈的,但是写到这里篇幅已经挺长的了,就干脆把其他的放到下一篇里面算了。剩下的问题还有:

  • 后台接收数据需要表单?小程序并不能很方便的获得数据的表单,甚至 <form>标签获得的数据也不是。
  • 解析 HTML 块?没有document,没有window,解析它简直是一种折磨。
  • <form/> 里面无法获取 <picker/> 的取值?明明文档里有说在 <form/> 里面是可以支持 <picker/> 的,结果你会发现死活无法获得他的值。
  • 要实现多层列表?有的时候也许需要在一个列表项的每一项下面又有一个子列表,在小程序里怎么做?
  • 如何方便愉快的实现类似 Java 里面的静态变量的效果?没有一个专门的类存放 static final 的值供其他地方使用感觉全身都不自在。

接下来我想谈一下我对小程序的看法。

  • 第一点,不管小程序能不能在未来的时间里在移动端大放异彩,学习它,掌握它,都是没有任何坏处的。
  • 第二点,就目前的版本而言,小程序的表现让我有些失望——实在是太过封闭。开发小程序就感觉像是在微信给我们划定的一个小圈子里兜兜转转,在圈里也许我们能得到很良好的开发体验,但是一步都出去不得。
  • 第三点,在性能与便捷之间,最终往往会是便捷取胜。
  • 第三点,能用 js 开发的,最终都会用 js 开发。

多谢各位看官看到这,顺便去点个star吧:wechat-weapp-gank

2018-12-02 20:39:27 ITxiaodong 阅读数 108
  • 快速入门Android开发 视频 教程 android studio

    这是一门快速入门Android开发课程,顾名思义是让大家能快速入门Android开发。 学完能让你学会如下知识点: Android的发展历程 搭建Java开发环境 搭建Android开发环境 Android Studio基础使用方法 Android Studio创建项目 项目运行到模拟器 项目运行到真实手机 Android中常用控件 排查开发中的错误 Android中请求网络 常用Android开发命令 快速入门Gradle构建系统 项目实战:看美图 常用Android Studio使用技巧 项目签名打包 如何上架市场

    19365 人正在学习 去看看 任苹蜻

需要代码可在文末扫码识别二维码,在我的----关于我—可找到我的联系方式。

小程序已发布,可在微信小程序中搜索找到,或者在文末找到小程序二维码体验一波

实现效果分析目录

Android 开发者从0到1发布一个微信小程序的采坑过程——首页实现
Android 开发者从0到1发布一个微信小程序的采坑过程——详情页实现
Android 开发者从0到1发布一个微信小程序的采坑过程——使用帮助页面
Android 开发者从0到1发布一个微信小程序的采坑过程——发布上线后动态切换页面

0、项目的目标和完成的情况

项目完成之后能学到什么:

  1. 原生小程序开发 有一定的了解,并能利用原生技术实现简单的页面效果
  2. HTML 和 CSS 以及JavaScript 有一些了解。能够实现常见的 CSS 样式
  3. 小程序云开发 有所了解,在没有后台的接口,甚至不用第三方的 API,也能实现一款小程序
  4. 小程序的发布上线 有所了解,能达到独立开发一款小程序

完成的情况:

欢迎使用,并提出反馈意见

实现的效果如下:gif展示
lottery.gif

截图展示:
产品意见提交.png

分享弹窗.png

开奖详情页.png

使用帮助页.png

使用帮助页入口.png

首页带有角标截图.png

1、开发前的准备

了解微信小程序个人的开发限制 [ 非常重要,一定要仔细看 ]

申请账号、开发工具、开发文档的准备

申请账号、准备文档,准备开发工具。

申请账号

照着教程来肯定没问题。

文档推荐阅读

【如果你没有一点小程序基础推荐你先大概看一遍官方开发文档】然后再结合我下面实现的案例去学习,哪里不懂就查哪里,查找的顺序:开发文档 > Google > 百度 > 问我

微信小程序开发文档:了解到常用的组件、API、还有项目的结构和配置
w3school 的 Html 、CSS 、JavaScript:用于美化页面,编写出优美的代码。

开发工具推荐

2、微信小程序的基础知识

了解项目的组成结构

JSON 配置

官方文档 https://developers.weixin.qq.com/miniprogram/dev/quickstart/basic/file.html#json-%E9%85%8D%E7%BD%AE

WXML 模板

官方文档 https://developers.weixin.qq.com/miniprogram/dev/quickstart/basic/file.html#wxml-%E6%A8%A1%E6%9D%BF

WXSS 样式

官方文档 https://developers.weixin.qq.com/miniprogram/dev/quickstart/basic/file.html#wxss-%E6%A0%B7%E5%BC%8F

JS 交互逻辑

官方文档 https://developers.weixin.qq.com/miniprogram/dev/quickstart/basic/file.html#js-%E4%BA%A4%E4%BA%92%E9%80%BB%E8%BE%91

简单了解小程序能的加载过程

https://developers.weixin.qq.com/miniprogram/dev/quickstart/basic/framework.html#%E5%B0%8F%E7%A8%8B%E5%BA%8F%E7%9A%84%E5%90%AF%E5%8A%A8

3、编写页面代码

首页

详情页

个人页

  • 实现效果

该效果和使用帮助页是一样,所以可以参考下方的使用帮助页实现分析

使用帮助页

提交反馈页

4、发布上线

发布前的测试

  • 开发版

添加更多管理员,可以进行测试。

  • 体验版

提交到管理后台后可以设置为体验版,拥有体验权限的用户可以进行使用。

可在下方的面板中进行设置
设置页面.png

审核被拒如何巧妙绕过

现在审核周期大概在两天左右,周末也会审核。

  • 解决思路

有时候我们开发的项目不属于个人开发项目的范围,那么如何才能上线了,网上有解决办法,就是通过后台返回的数值决定显示的页面。

  • 解决办法

通过云数据库,或者自己通过服务器接口来改变

欢迎老铁扫码体验一波

图片

2018-12-01 22:55:52 ITxiaodong 阅读数 83
  • 快速入门Android开发 视频 教程 android studio

    这是一门快速入门Android开发课程,顾名思义是让大家能快速入门Android开发。 学完能让你学会如下知识点: Android的发展历程 搭建Java开发环境 搭建Android开发环境 Android Studio基础使用方法 Android Studio创建项目 项目运行到模拟器 项目运行到真实手机 Android中常用控件 排查开发中的错误 Android中请求网络 常用Android开发命令 快速入门Gradle构建系统 项目实战:看美图 常用Android Studio使用技巧 项目签名打包 如何上架市场

    19365 人正在学习 去看看 任苹蜻

Android 开发者从0到1发布一个微信小程序的采坑过程——首页实现
Android 开发者从0到1发布一个微信小程序的采坑过程——详情页实现
Android 开发者从0到1发布一个微信小程序的采坑过程——使用帮助页面
Android 开发者从0到1发布一个微信小程序的采坑过程——发布上线后动态切换页面

需要代码可在文末扫码识别二维码,在我的----关于我—可找到我的联系方式。

本文主要介绍微信小程序的上线发布,以及如何发布后动态切换显示的页面

通过前面几篇文章,我们基本实现了一个查看彩票开奖结果的小程序,但是个人是不支持发布彩票查询类的小程序的,那么我们就没有办法了么?网上有介绍实现方法,但是具体实现过程没写,我这里就将实现过程写出来。

最重要的是先了解到个人开发者能够上传哪些小程序,可以去下面这个地址查看

微信小程序个人的开发限制

我这里主要通过两个步骤就可以实现:

  • 在首页创建多个页面,通过小程序的if-else组件在wxml中动态控制显示的页面
  • 利用小程序云开发的云数据库动态改变我们的值来达到动态切换页面的效果。(每次启动会有点跳屏,所以真正开发还是按照微信的规定走,这里只是测试)

第一步:布局的编写

<view class='window-content'>
  <!-- 查询开奖页面 -->
  <view wx:if="{{这里判断}}">
   // 具体的查开奖页面实现
   
  </view>
  <!-- 查询快递页面,因为个人可以发布快递查询小程序,所以这里选择查快递的功能 -->
  <view wx:else>
  	// 具体页面实现
  </view>
</view>

第二步

在 第一步中的布局对应的 js脚本文件中,或许云数据的数据,然后动态改变。

比如第一步中的wxml文件名叫home.wxml那么我们在对应的home.js文件中开通云数据库开发,然后获取云数据库中保存的值,比如我在云数据库中创建一个一个集合version_control,在集合中添加一个字段version,设置字段类型为int类型且值默认等于0

最后在home.js中设置给home.wxml数据的时候将云数据库中获取的值绑定到home.wxml文件中。

伪代码实现如下:

获取数据库的值:
 db.collection(table_name).get({
      success: function(res) {
        // res中得到数据库的值
      }
    })

设置给 wxml 页面
 this.setData({
       list_data: list_data, // 具体数据
      version: version // 控制页面显示的数据,从云数据库中获取的结果
      
    })

这里要记录一个坑:云数据库默认是我们修改之后只有管理员和创建者能接收到修改,所以我们还需要在云数据库页面修改权限,如下:
在这里插入图片描述

文章到这里就结束了,有啥问题和建议欢迎私信交流~

欢迎老铁扫码体验一波(目前扫码出现可能是查快递页面,这是个人开发者绕过上线提交的页面,12月份会改为查开奖页面)

在这里插入图片描述

2008-10-29 14:11:00 javazat 阅读数 427
  • 快速入门Android开发 视频 教程 android studio

    这是一门快速入门Android开发课程,顾名思义是让大家能快速入门Android开发。 学完能让你学会如下知识点: Android的发展历程 搭建Java开发环境 搭建Android开发环境 Android Studio基础使用方法 Android Studio创建项目 项目运行到模拟器 项目运行到真实手机 Android中常用控件 排查开发中的错误 Android中请求网络 常用Android开发命令 快速入门Gradle构建系统 项目实战:看美图 常用Android Studio使用技巧 项目签名打包 如何上架市场

    19365 人正在学习 去看看 任苹蜻

http://code.google.com/intl/zh-CN/android/adc_faq.html#what

返回大赛主页

何谓“Android 开发者大赛”?

“Android 开发者大赛”是 Google 举办的一项最佳 Android 手机应用程序有奖征集活动,奖金总额高达 1000 万美元。

Google 为何要举办 Android 开发者大赛?

要提供更理想的手机体验,让全球用户的生活更加多姿多彩,离不开广大开发者的鼎力支持。我们希望支持并奖励那些为基于 Android 的设备开发出一流应用程序的开发者。

Android 开发者大赛具体是怎样安排的?

Android 开发者大赛分为两个部分。Android 开发者大赛 I 将在 2008 年 1 月 2 日到 4 月 14 日期间接受参赛作品。Android 开发者大赛 II 将在 2008 年下半年首款基于该平台的手机投放市场后启动。

Google 要征集什么样的应用程序?

我们接受所有类型的应用程序,并会奖励那些能兼顾创意和实用性并能够借助 Android 的功能来提供更佳手机体验的应用程序。您可以从以下一些领域着手:

  • 社交联络
  • 媒体消费、管理、修改或共享:如照片等
  • 效率与协作:如电子邮件、即时通信、日历等
  • 游戏
  • 资讯与信息(天气、路况交通、运动、股票等)
  • 突破传统用户界面的新构想
  • 混搭式 (mash-up) 网络服务
  • 定位服务
  • 社会公益(监控疾病、气候变化及自然灾害等,并能对此作出因应)
  • 面向日均生活费低于 2 美元的 30 亿人口、服务于全球经济发展的各类应用
  • 任何您所热衷的领域!

Google 将提供何种奖励?

Google 将以现金的形式提供 1000 万美元的奖金,而且没有任何附加条件。该笔奖金将平分给 Android 开发者大赛 I 和 II。在 Android 开发者大赛 I 中,我们将为排名前 50 位的最具潜力参赛作品各提供 2.5 万美元的奖金,以资助相应作者进行后续开发。这些作品将有资格获得更高级别的奖励,奖项设置分别为 27.5 万美元(10 名)及 10 万美元(10 名)。

大赛 II 的规则将于稍后公布。

应用程序的获奖标准是什么?

  1. 构思新颖
    应用程序是否展现了绝妙的创意,比如社交应用程序中的新视角?
  2. 有效利用 Android 平台
    应用程序能否将 Android 独有的显著特点发挥到了极致,比如内置的定位服务、加速计以及时刻在线网络?
  3. 完善且具有吸引力
    应用程序是否便于使用且具有美感?
  4. 不可或缺
    应用程序能否令用户感到必不可少,比如让用户欲罢不能的游戏或功用?

Android 开发者大赛的评委是谁?

参赛作品将由开放手机联盟 (Open Handset Alliance) 成员和/或移动专家组成的评审小组进行评审。评审标准的详细信息,参见开发者参赛作品提交页推出当天或之前发布的相关条款。

可以提交多个应用程序吗?

可以,不过我们更重视的是质量,而非数量。

向 Android 开发者大赛提交应用程序后,我还拥有这个应用程序的所有权吗?

虽然 Google 得到授权可以出于大赛的目的而对应用程序进行评估和测试,并为宣传 Android 平台而对应用程序进行展示,但是开发者自己才真正拥有该应用程序的所有知识产权和其他权利。我们将在条款发布后提供详细信息。

应用程序是否必须使用英文用户界面?

应用程序可以采用任何语言开发,但参赛作品至少得支持英语。

哪些人有资格参赛?

  • Android 开发者大赛面向所有个人、个人开发团队以及商业机构。我们其实很希望大赛的范围能够遍及全球,但是美国法律规定:古巴、伊朗、叙利亚、北朝鲜、苏丹、缅甸这些国家的居民不能参赛。另外,由于地方性的限制,意大利或魁北克的居民也不能参赛。
  • 您必须达到居住国家/地区所规定的法定参赛年龄。
  • Google 工作人员、开放手机联盟成员或联属公司不能参赛。
  • 有关详情,请在完整的条款发布后查阅。

如何参赛?

  1. 开始编码
  2. 订阅 Android 开发者博客,随时了解最新动态。
  3. 请在 2008 年 1 月 2 日和 4 月 14 日之间提交应用程序
  4. 期待您的参与!

大赛的时间安排是怎样的?

  • 2008 年 1 月2 日:提交 Android 开发者大赛 I 参赛作品的开始时间
  • 2008 年 4 月 14 日:提交参赛作品的截止时间
  • 2008 年 5 月 5 日:公布将获得 2.5 万美元奖金的、排名前 50 位的最具潜力参赛作品
  • 2008 年 6 月 30 日:排名前 50 位的参赛作品角逐另外的 27.5 万美元和 10 万美元奖金的截止时间。
  • 2008 年 7 月 21 日:公布获得 27.5 万美元和 10 万美元奖金的作品
  • 2008 年下半年:Android 开发者大赛 II 启动

用本机代码编写的应用程序有资格参赛吗?

所有提交的应用程序都应采用 Java 编程语言编写。

参赛作品应基于何种 SDK?

您可以提交采用任何 SDK 版本开发的应用程序。要提交应用程序时,请明确说明所采用的 SDK 版本,我们会根据该 SDK 版本对您的应用程序进行评估。

我的应用程序是根据特定 SDK 开发的,为了使其能够利用新版 SDK 的功能,我又进行了相应更新,这种情况下我能否重新提交应用程序?

当然可以!我们接受在 2008 年 4 月 14 日截止日期之前提交的参赛作品,包括重新提交的作品。事实上,我们鼓励更新应用程序,使之能充分运用 SDK 新版本提供的新功能。

是否可以提交开发者工具?

可以。

是否可以提交应用程序框架?

可以。提交框架时,请采用向最终开发者提供的形式,包括所有文档、示例和支持代码。

是否可以提交客户端-服务器应用程序?

可以。不过,请确保该服务器为公共服务器,使客户端应用程序可以按料想的用户体验进行测试。

如何获取更多信息?

订阅 Android 开发者博客,了解有关 Android 和 Android 开发者大赛的最新信息。您也可以通过 Google 网上论坛与我们联系,提出您的问题。

没有更多推荐了,返回首页