小游戏(1)第一步是先写出 Hello,World
写任何程序的第一步,都是先写出 Hello, World。原因在于,能够撰写、编译、运行出最初的一个简单的输出、或者跑通基本的窗口,意味着整个变成环境的框架已经搭建起来并且通顺了。 以当前要做的这个程序为例,我并没有 Java 代码的基础知识、对正在使用的开发环境也不了解,但是我知道无论如何,也要先令开发环境顺利的部署、搭建起来。怎么证明我的开发环境是正确部署起来的呢?就是通过 Hello, world 进行验证。 这在今天对于开发者而言已经是非常友好、简单的了。从 Android Studio 官方下载 IDE 集成开发工具,在自己的电脑上一键安装,然后运行起来,基本就完成了整个开发环境的部署。与其说是“部署”,不如说就是一键傻瓜式安装。 如果放在早些年,仅这一步也许就要花费几天的时间,需要自己将整个编译链上每一个环节都调试通顺,甚至有大量的依赖工具或库,都是需要自己根据自己的电脑和系统环境准备、调整,不断地调整才能彼此配合妥当的。 受益于“包管理器”和“自动依赖检查”等概念和工具,并且受益于开源领域大量的预编译二进制包,今天这个准备过程已经非常简便。当然这是对程序的语言和开发框架而言,如果是新兴语言或行业应用、又或者是比较小众的环境,这个过程还是会令人感到痛苦和繁琐的。 无论如何,我们这次尝试进行的只是一个使用 Java 语言进行 PApplet 应用窗体的开发,所以对于搭建它的开发环境,显然是非常简单,一步操作即可完成。 在 Android Studio 中将初始的程序项目打开,并且点击运行,很快就能够看到一个基本的窗口出现,这意味着 Hello,…
試用Android Studio寫了一個小應用
一、做了個Android APP卻無法上架 大約半個月之前,我完成了對自己電腦的升級操作,新硬件很令人激動,無論是工作還是娛樂都十分順暢。於是我就想用這臺嶄新的電腦做些什麽有趣的事情。 之後大概花了兩天學習了一下Java語言和Android Studio的使用,然後便開始嘗試做一款小的APP出來。我原本預計要用30天的時間、6000行代碼左右,做出一個完成度比較高的應用。結果實際情況遠比自己設想的樂觀,只用了10天、2000行代碼,就實現了一個自我感覺良好的應用程式。 於是昨天又是一個心血來潮,花了25美元在Google Play注冊了一個開發者,想著將自己寫的APP發佈上架。結果在完成開發者的注冊之後才發現,如今的Google Play想上架一款新的應用非常難,門檻很高。 它有至少兩個我無法完成的門檻:真機驗證、封閉内測。 Google Play要求開發者完成真機驗證,雖然說幾乎所有的開發者都會有真實的Android手機,但是我的手機并沒有安裝GMS框架、也沒有Google Play應用、而且無法訪問Google網絡,這就導致我雖然有真機,卻無法完成Google Play要求的真機驗證。 第二點是封閉測試,這是更難以達到的。Google Play如今要求開發者在正式發佈應用之前,要有20人、進行14天的封閉測試。大概是說要有一個内部測試論壇用以討論、測試,連續14天的内測要求是活躍的、每天都有至少20人使用過這款應用。 就算對於一個非常有趣的應用產品,也幾乎沒有可能有人樂意連續20天使用。翻看一下自己的手機,如今除了微信、支付寶這樣的應用之外,還有哪一款應用是可能被用戶連續20天使用的呢?例如就算是每天坐公交車上下班、使用公交刷卡類APP,也不可能達到連續20天、天天使用。 同時我身邊也沒有那麽多的朋友、更沒有那麽多的朋友都能夠訪問Google Play應用商店或開發者社區,這就導致封閉内測對於我而言是肯定無法完成的。 大概看了一下網上的測試團隊,的確有一些專業團隊能夠承接測試工作,但是這些測試團隊幾乎都是按人、按次收費的,如果想完成Google Play的封閉測試,大約需要280人日,就算每一個人日我樂於付出100元的酬勞,這也是只是28000元的支出,才可能完成一次有效的封閉測試。 考慮到其中可能有些人臨時“放鴿子”、估計一次封閉測試支付要在3.5萬;如果一次封閉測試未能達到商家要求,再多做一次,那麽對於我的小應用而言,什麽都沒有做之前,就要先準備出至少7萬元用於完成“測試團隊的招聘”。這對於個人開發者而言,顯然是不可能、也無法接受的。 所以在看到上面真機驗證、封閉測試兩個門檻之後,我便後悔花了25美元開通Google Play的開發者賬號了。現在心情十分沮喪,不僅是因爲花了25美元的冤枉錢,更多的還是覺得對於個人開發者而言,沒有方向。 我現在基本放棄了將APP上架Google Play的計劃,轉而看一看有沒有其他的應用市場,對於個人開發者比較友好、或者索性就將自己做的應用直接打包成APK,裸包放在自己的網站上,供人下載、試用吧。 二、嘗試在Amazon Android…