google的开源移动操作系统Android给智能手机市场带来了风暴。不像Apple,对想要为水果市场(Iphone App Store)提供应用软件的开发者们有着严格的指导原则以及要求,Google将Android平台 完全开放。现在你甚至能够用PHP来实现Android应用程序。Irontech的人们已经创建了一个在Android上运行的PHP接口(见PFA ),而通过 Scripting Layer for Android (SL4A),你可以建立PHP的Android应用程序。

在这篇文章里,我会介绍如何安装,设置及使用PHP for Android and SL4A,我将给出一个演示程序作为例子,并以使用PHP for Android开发的经验给出第一手的报告。

安装PHP for Android

为了安装PHP for Android,你得拥有一部运行着版本1.5或以上版本Android的电话或模拟器,并且你必须激活应用设置下的“未知来源”(Unknown Source)。如果你已经满足了上述条件,你只需要简单地安装SL4A环境 和PHP for Android APK .

安装SL4A不复杂,不过在你安装完PHP for Android后,你需要再次点击“安装”以获得完整功能。如果你在安装时碰到困难,在Vimeo上有一个功略:handy video demonstration 。

设置PHP for Android开发环境

如果你已经安装好PHP for Android,理论上,你可以在你的手机上写PHP应用了。但从实际效果上来说,并不能做地很好。你要做的是 下载Android SDK ,配置一个模拟器,然后在你喜欢的编辑器敲打代码。

你下载完SDK后,解压到你选定的目录,运行位于tools 目录下的Android程序,并配置一个模拟器。在Android SDK and AVD Manager 菜单下, 选择 Virtual Devices 并点击按钮 New 。命名你的新模拟器(如 “Droid2″)并选择Android 2.2作为目标。设定SD卡大小为 10 MiB ,点击 Create AVD 。

现在你已经配置好Droid模拟器,点击Start 按钮。这里有一些棘手,因为你无法直接将文件复制到你刚刚配置的虚拟机中。你必须配置端口转发并将你的PHP脚本通过一个叫做adb 的程序(Android SDK的一部分)推送到虚拟机中,这个程序也在目录tools下。

下一步,你可以在虚拟机中开启一个服务。你可以链接到服务器上来发送你的脚本。下面的步骤将帮助你尽快地启动和运行(你可以从这里 读到关于这个步骤的完整文档).

  1. 保持你的新虚拟机运行,进入Applications 界面并点击SL4A。
  2. 在SL4A界面中,点击Menu 按钮,点中View 并选中Interpreters 。
  3. 再次点击Menu ,选择Start Server 并选中Private 。
  4. 将Android notification栏往下拖动你会看到SL4A服务(点击服务并确认你的服务正在监听的端口,如47000)。
  5. 打开一个shell或命令行,通过adb 工具来设置转发端口。例如,输入指令adb forward tcp:9999 tcp:47000 ,将47000 替换成你的端口数。
  6. 设置名为AP_PORT 的环境变量。在UNIX 或 Mac,执行export AP_PORT=9999 。在Windows,输入 set AP_PORT=9999 。
  7. 要在你的模拟器中测试你的代码,只需要运行adb push my_script.php /sdcard/sl4a/scripts ,用你自己写的代码替换 my_script.php 。

你也可以在一个真实手机中配置并运行。只需要把你在你的模拟器中做的在手机上重复一次。为了更简单些,你可以设置一个环境变量ANDROID_HOME 指向你的Android SDK路径并添加子目录tools 到你的路径中。

用PHP建立一个Android应用程序

当你配置完你的开发环境后,你会发现写一个在Android上跑的PHP应用是相当简单的事情。你会发现PHP for Android中的PHP版本是一个精简版。你拥有基本的PHP核心函数和JSON支持–仅此而已。如果你是一个熟悉JAVA框架的Android开发 者,你还会发现SL4A并不提供和所有你在使用java创建成熟Anrdoid应用时已经习惯了的所有组件的接口。

SL4A所提供的是Android API子集的“壳”。(SL4A支持的完整方法列表在这里 查看。) 但PHP for Android有趣的地方在于你可以只用几行代码快速搭建一个应用的原型并让它跑起来。我用不到60行的代码写了一个演示代码:查询股票报价 。

Language:  PHP
  1. <span style="color: #000000; font-weight: bold;"><?php</span>
  2. <br>
  3. <span style="color: #990000;">define</span>
  4. <span style="color: #009900;">(</span>
  5. <span style="color: #0000ff;">'QUOTE_SERVER'</span>
  6. <span style="color: #339933;">,</span>
  7. <span style="color: #0000ff;">'http://quoter.take88.com/?ticker=%s'</span>
  8. <span style="color: #009900;">)</span>
  9. <span style="color: #339933;">;</span>
  10. <br>
  11. <span style="color: #b1b100;">require_once</span>
  12. <span style="color: #009900;">(</span>
  13. <span style="color: #0000ff;">"Android.php"</span>
  14. <span style="color: #009900;">)</span>
  15. <span style="color: #339933;">;</span>
  16. <br>
  17. <span style="color: #000088;">$droid</span>
  18. <span style="color: #339933;">=</span>
  19. <span style="color: #000000; font-weight: bold;">new</span>
  20. Android<span style="color: #009900;">(</span>
  21. <span style="color: #009900;">)</span>
  22. <span style="color: #339933;">;</span>
  23. <br>
  24. <span style="color: #000088;">$action</span>
  25. <span style="color: #339933;">=</span>
  26. <span style="color: #0000ff;">'get_tickers'</span>
  27. <span style="color: #339933;">;</span>
  28. <br>
  29. <span style="color: #000088;">$tickers</span>
  30. <span style="color: #339933;">=</span>
  31. <span style="color: #0000ff;">''</span>
  32. <span style="color: #339933;">;</span>
  33. <br>
  34. <span style="color: #b1b100;">while</span>
  35. <span style="color: #009900;">(</span>
  36. <span style="color: #009900; font-weight: bold;">TRUE</span>
  37. <span style="color: #009900;">)</span>
  38. <span style="color: #009900;">{</span>
  39. <br>
  40. <span style="color: #b1b100;">switch</span>
  41. <span style="color: #009900;">(</span>
  42. <span style="color: #000088;">$action</span>
  43. <span style="color: #009900;">)</span>
  44. <span style="color: #009900;">{</span>
  45. <br>
  46. <span style="color: #b1b100;">case</span>
  47. <span style="color: #0000ff;">'quote'</span>
  48. <span style="color: #339933;">:</span>
  49. <br>
  50. <span style="color: #000088;">$droid</span>
  51. <span style="color: #339933;">-></span>
  52. <span style="color: #004000;">dialogCreateSpinnerProgress</span>
  53. <span style="color: #009900;">(</span>
  54. <span style="color: #0000ff;">"Querying stock information server ..."</span>
  55. <span style="color: #339933;">,</span>
  56. <span style="color: #0000ff;">"Please wait"</span>
  57. <span style="color: #009900;">)</span>
  58. <span style="color: #339933;">;</span>
  59. <br>
  60. <span style="color: #000088;">$droid</span>
  61. <span style="color: #339933;">-></span>
  62. <span style="color: #004000;">dialogShow</span>
  63. <span style="color: #009900;">(</span>
  64. <span style="color: #009900;">)</span>
  65. <span style="color: #339933;">;</span>
  66. <br>
  67. <span style="color: #000088;">$quotes</span>
  68. <span style="color: #339933;">=</span>
  69. <span style="color: #339933;">@</span>
  70. <span style="color: #990000;">array_slice</span>
  71. <span style="color: #009900;">(</span>
  72. <span style="color: #990000;">json_decode</span>
  73. <span style="color: #009900;">(</span>
  74. <span style="color: #990000;">file_get_contents</span>
  75. <span style="color: #009900;">(</span>
  76. <span style="color: #990000;">sprintf</span>
  77. <span style="color: #009900;">(</span>
  78. QUOTE_SERVER<span style="color: #339933;">,</span>
  79. <span style="color: #000088;">$tickers</span>
  80. <span style="color: #009900;">)</span>
  81. <span style="color: #009900;">)</span>
  82. <span style="color: #009900;">)</span>
  83. <span style="color: #339933;">,</span>
  84. <span style="color: #cc66cc;">0</span>
  85. <span style="color: #339933;">,</span>
  86. <span style="color: #cc66cc;">3</span>
  87. <span style="color: #009900;">)</span>
  88. <span style="color: #339933;">;</span>
  89. <br>
  90. <span style="color: #000088;">$droid</span>
  91. <span style="color: #339933;">-></span>
  92. <span style="color: #004000;">vibrate</span>
  93. <span style="color: #009900;">(</span>
  94. <span style="color: #009900;">)</span>
  95. <span style="color: #339933;">;</span>
  96. <br>
  97. <span style="color: #000088;">$droid</span>
  98. <span style="color: #339933;">-></span>
  99. <span style="color: #004000;">dialogDismiss</span>
  100. <span style="color: #009900;">(</span>
  101. <span style="color: #009900;">)</span>
  102. <span style="color: #339933;">;</span>
  103. <br>
  104. <span style="color: #666666; font-style: italic;">// Possible data points.</span>
  105. <br>
  106. <span style="color: #666666; font-style: italic;">// "SYMBOL","NAME","LAST_TRADE","MORE_INFO",</span>
  107. <br>
  108. <span style="color: #666666; font-style: italic;">//"LAST_TRADE_DATE","LAST_TRADE_TIME","OPEN",</span>
  109. <br>
  110. <span style="color: #666666; font-style: italic;">//"DAYS_HIGH","DAYS_LOW","DIVIDEND_SHARE",</span>
  111. <br>
  112. <span style="color: #666666; font-style: italic;">//"PE_RATIO","52_WEEK_LOW","52_WEEK_HIGH","VOLUME"</span>
  113. <br>
  114. <span style="color: #000088;">$output</span>
  115. <span style="color: #339933;">=</span>
  116. <span style="color: #0000ff;">''</span>
  117. <span style="color: #339933;">;</span>
  118. <br>
  119. <span style="color: #b1b100;">for</span>
  120. <span style="color: #009900;">(</span>
  121. <span style="color: #000088;">$i</span>
  122. <span style="color: #339933;">=</span>
  123. <span style="color: #cc66cc;">0</span>
  124. <span style="color: #339933;">,</span>
  125. <span style="color: #000088;">$cnt</span>
  126. <span style="color: #339933;">=</span>
  127. <span style="color: #990000;">count</span>
  128. <span style="color: #009900;">(</span>
  129. <span style="color: #000088;">$quotes</span>
  130. <span style="color: #009900;">)</span>
  131. <span style="color: #339933;">;</span>
  132. <span style="color: #000088;">$i</span>
  133. <span style="color: #339933;"><</span>
  134. <span style="color: #000088;">$cnt</span>
  135. <span style="color: #339933;">;</span>
  136. <span style="color: #000088;">$i</span>
  137. <span style="color: #339933;">++</span>
  138. <span style="color: #009900;">)</span>
  139. <span style="color: #009900;">{</span>
  140. <br>
  141. <span style="color: #000088;">$output</span>
  142. <span style="color: #339933;">.=</span>
  143. <span style="color: #0000ff;">"Company: "</span>
  144. <span style="color: #339933;">.</span>
  145. <span style="color: #000088;">$quotes</span>
  146. <span style="color: #009900;">[</span>
  147. <span style="color: #000088;">$i</span>
  148. <span style="color: #009900;">]</span>
  149. <span style="color: #339933;">-></span>
  150. <span style="color: #004000;">NAME</span>
  151. <span style="color: #339933;">.</span>
  152. <span style="color: #0000ff;">"<span style="color: #000099; font-weight: bold;">/n</span>
  153. "</span>
  154. <span style="color: #339933;">;</span>
  155. <br>
  156. <span style="color: #000088;">$output</span>
  157. <span style="color: #339933;">.=</span>
  158. <span style="color: #0000ff;">"Ticker: "</span>
  159. <span style="color: #339933;">.</span>
  160. <span style="color: #000088;">$quotes</span>
  161. <span style="color: #009900;">[</span>
  162. <span style="color: #000088;">$i</span>
  163. <span style="color: #009900;">]</span>
  164. <span style="color: #339933;">-></span>
  165. <span style="color: #004000;">SYMBOL</span>
  166. <span style="color: #339933;">.</span>
  167. <span style="color: #0000ff;">"<span style="color: #000099; font-weight: bold;">/n</span>
  168. "</span>
  169. <span style="color: #339933;">;</span>
  170. <br>
  171. <span style="color: #000088;">$output</span>
  172. <span style="color: #339933;">.=</span>
  173. <span style="color: #0000ff;">"Last trade: $"</span>
  174. <span style="color: #339933;">.</span>
  175. <span style="color: #000088;">$quotes</span>
  176. <span style="color: #009900;">[</span>
  177. <span style="color: #000088;">$i</span>
  178. <span style="color: #009900;">]</span>
  179. <span style="color: #339933;">-></span>
  180. <span style="color: #004000;">LAST_TRADE</span>
  181. <span style="color: #339933;">.</span>
  182. <span style="color: #0000ff;">"<span style="color: #000099; font-weight: bold;">/n</span>
  183. "</span>
  184. <span style="color: #339933;">;</span>
  185. <br>
  186. <span style="color: #000088;">$output</span>
  187. <span style="color: #339933;">.=</span>
  188. <span style="color: #0000ff;">"<span style="color: #000099; font-weight: bold;">/n</span>
  189. "</span>
  190. <span style="color: #339933;">;</span>
  191. <br>
  192. <span style="color: #009900;">}</span>
  193. <br>
  194. <span style="color: #000088;">$output</span>
  195. <span style="color: #339933;">=</span>
  196. <span style="color: #990000;">html_entity_decode</span>
  197. <span style="color: #009900;">(</span>
  198. <span style="color: #000088;">$output</span>
  199. <span style="color: #339933;">,</span>
  200. <span style="color: #009900; font-weight: bold;">ENT_QUOTES</span>
  201. <span style="color: #339933;">,</span>
  202. <span style="color: #0000ff;">"UTF-8"</span>
  203. <span style="color: #009900;">)</span>
  204. <span style="color: #339933;">;</span>
  205. <br>
  206. <span style="color: #666666; font-style: italic;">// Something is wrong with '</span>
  207. <br>
  208. <span style="color: #000088;">$output</span>
  209. <span style="color: #339933;">=</span>
  210. <span style="color: #990000;">str_replace</span>
  211. <span style="color: #009900;">(</span>
  212. <span style="color: #0000ff;">"'"</span>
  213. <span style="color: #339933;">,</span>
  214. <span style="color: #0000ff;">"'"</span>
  215. <span style="color: #339933;">,</span>
  216. <span style="color: #000088;">$output</span>
  217. <span style="color: #009900;">)</span>
  218. <span style="color: #339933;">;</span>
  219. <br>
  220. <span style="color: #000088;">$droid</span>
  221. <span style="color: #339933;">-></span>
  222. <span style="color: #004000;">dialogCreateAlert</span>
  223. <span style="color: #009900;">(</span>
  224. <span style="color: #0000ff;">"Your stock quotes"</span>
  225. <span style="color: #339933;">,</span>
  226. <span style="color: #000088;">$output</span>
  227. <span style="color: #009900;">)</span>
  228. <span style="color: #339933;">;</span>
  229. <br>
  230. <span style="color: #000088;">$droid</span>
  231. <span style="color: #339933;">-></span>
  232. <span style="color: #004000;">dialogSetPositiveButtonText</span>
  233. <span style="color: #009900;">(</span>
  234. <span style="color: #0000ff;">"Get new quote"</span>
  235. <span style="color: #009900;">)</span>
  236. <span style="color: #339933;">;</span>
  237. <br>
  238. <span style="color: #000088;">$droid</span>
  239. <span style="color: #339933;">-></span>
  240. <span style="color: #004000;">dialogSetNegativeButtonText</span>
  241. <span style="color: #009900;">(</span>
  242. <span style="color: #0000ff;">"Exit"</span>
  243. <span style="color: #009900;">)</span>
  244. <span style="color: #339933;">;</span>
  245. <br>
  246. <span style="color: #000088;">$droid</span>
  247. <span style="color: #339933;">-></span>
  248. <span style="color: #004000;">dialogShow</span>
  249. <span style="color: #009900;">(</span>
  250. <span style="color: #009900;">)</span>
  251. <span style="color: #339933;">;</span>
  252. <br>
  253. <span style="color: #000088;">$response</span>
  254. <span style="color: #339933;">=</span>
  255. <span style="color: #000088;">$droid</span>
  256. <span style="color: #339933;">-></span>
  257. <span style="color: #004000;">dialogGetResponse</span>
  258. <span style="color: #009900;">(</span>
  259. <span style="color: #009900;">)</span>
  260. <span style="color: #339933;">;</span>
  261. <br>
  262. <span style="color: #b1b100;">if</span>
  263. <span style="color: #009900;">(</span>
  264. <span style="color: #000088;">$response</span>
  265. <span style="color: #009900;">[</span>
  266. <span style="color: #0000ff;">'result'</span>
  267. <span style="color: #009900;">]</span>
  268. <span style="color: #339933;">-></span>
  269. <span style="color: #004000;">which</span>
  270. <span style="color: #339933;">==</span>
  271. <span style="color: #0000ff;">'negative'</span>
  272. <span style="color: #009900;">)</span>
  273. <span style="color: #009900;">{</span>
  274. <br>
  275. <span style="color: #000088;">$action</span>
  276. <span style="color: #339933;">=</span>
  277. <span style="color: #0000ff;">"exit"</span>
  278. <span style="color: #339933;">;</span>
  279. <br>
  280. <span style="color: #009900;">}</span>
  281. <span style="color: #b1b100;">else</span>
  282. <span style="color: #009900;">{</span>
  283. <br>
  284. <span style="color: #000088;">$action</span>
  285. <span style="color: #339933;">=</span>
  286. <span style="color: #0000ff;">'get_tickers'</span>
  287. <span style="color: #339933;">;</span>
  288. <br>
  289. <span style="color: #009900;">}</span>
  290. <br>
  291. <span style="color: #b1b100;">break</span>
  292. <span style="color: #339933;">;</span>
  293. <br>
  294. <span style="color: #b1b100;">case</span>
  295. <span style="color: #0000ff;">'get_tickers'</span>
  296. <span style="color: #339933;">:</span>
  297. <br>
  298. <span style="color: #000088;">$response</span>
  299. <span style="color: #339933;">=</span>
  300. <span style="color: #000088;">$droid</span>
  301. <span style="color: #339933;">-></span>
  302. <span style="color: #004000;">getInput</span>
  303. <span style="color: #009900;">(</span>
  304. <span style="color: #0000ff;">"Stock Tickers (max. 3)"</span>
  305. <span style="color: #339933;">,</span>
  306. <span style="color: #0000ff;">"Enter Tickers.<span style="color: #000099; font-weight: bold;">/n</span>
  307. Separate with spaces."</span>
  308. <span style="color: #009900;">)</span>
  309. <span style="color: #339933;">;</span>
  310. <br>
  311. <br>
  312. <span style="color: #000088;">$tickers</span>
  313. <span style="color: #339933;">=</span>
  314. <span style="color: #990000;">str_replace</span>
  315. <span style="color: #009900;">(</span>
  316. <span style="color: #0000ff;">' '</span>
  317. <span style="color: #339933;">,</span>
  318. <span style="color: #0000ff;">'+'</span>
  319. <span style="color: #339933;">,</span>
  320. <span style="color: #000088;">$response</span>
  321. <span style="color: #009900;">[</span>
  322. <span style="color: #0000ff;">'result'</span>
  323. <span style="color: #009900;">]</span>
  324. <span style="color: #009900;">)</span>
  325. <span style="color: #339933;">;</span>
  326. <br>
  327. <span style="color: #000088;">$droid</span>
  328. <span style="color: #339933;">-></span>
  329. <span style="color: #004000;">vibrate</span>
  330. <span style="color: #009900;">(</span>
  331. <span style="color: #009900;">)</span>
  332. <span style="color: #339933;">;</span>
  333. <br>
  334. <span style="color: #000088;">$action</span>
  335. <span style="color: #339933;">=</span>
  336. <span style="color: #0000ff;">'quote'</span>
  337. <span style="color: #339933;">;</span>
  338. <br>
  339. <span style="color: #b1b100;">break</span>
  340. <span style="color: #339933;">;</span>
  341. <br>
  342. <span style="color: #b1b100;">case</span>
  343. <span style="color: #0000ff;">'exit'</span>
  344. <span style="color: #339933;">:</span>
  345. <br>
  346. <span style="color: #000088;">$droid</span>
  347. <span style="color: #339933;">-></span>
  348. <span style="color: #004000;">exit</span>
  349. <span style="color: #009900;">(</span>
  350. <span style="color: #009900;">)</span>
  351. <span style="color: #339933;">;</span>
  352. <br>
  353. <span style="color: #990000;">exit</span>
  354. <span style="color: #009900;">(</span>
  355. <span style="color: #009900;">)</span>
  356. <span style="color: #339933;">;</span>
  357. <br>
  358. <span style="color: #b1b100;">break</span>
  359. <span style="color: #339933;">;</span>
  360. <br>
  361. <span style="color: #009900;">}</span>
  362. <br>
  363. <span style="color: #009900;">}</span>
  364. <br>
  365. <span style="color: #000000; font-weight: bold;">?></span>

复制黏贴上述代码进你的编辑器,并保存为quoter4android.php,上传至你的模拟器。如果你的模拟器没有运行,发动它,配置你的端口转发并通过位于Android SDK的tools目录下的adb上传quoter4android.php 文件。

为了在你的模拟器运行这个程序,切换到Applications 界面,点击图标SL4A 并单击quoter4android.php 选项。

要安装quoter4android.php 到你的手机上的话,你可以配置端口转发。不过更简单的方法就是将你的手机和电脑通过USB线连接,并将这个脚本复制进目录 sl4a/scripts 。不过,为了在你的手机中运行脚本,你得将你的手机与电脑断开,否则当你点击图标SL4A 时你不会看到任何已经安装的脚本。

你会注意到这个程序的第一行设置了一个常量QUOTE_SERVER 。如果你习惯于传统的商用PHP web应用的建设,你不需要去担心分发你的代码并且在未来改变它—那不是它在android上应该做的事。你必须发布你原始的PHP代码。所以如果你决定 将你的PHP android应用放进菜市场(Android Market),你将把一个你无法控制的网址硬编码进你的应用,你的应用会抛锚。

例如,这个股票报价应用程序实际上是从一个Yahoo Web Service中获取股票信息。但与其将Yahoo的链接直接硬编码进这个Android应用,我选择的是创建一个连接应用和Yahoo股票服务的简单 web service。这样即使Yahoo决定停止提供这个服务,或者它们改变了连接地址,我只需要简单地更新位于quoter.take88.com 的web service。而这个Android代码不需要做任何改变,没人会在他的手机上发现一个挂掉的应用。而且,我可以将一些复杂度超出Android应用允 许的功能转移到我的web service,在那我可以使用完整的语言支持而不只是一个精简版的PHP。在这个例子中,我通过mod_perl 来用perl实现我的web service。

结论

通过SL4A和PHP for Android你可以做很多事,这篇文章只是管中窥豹而已。这两个项目都非常年轻—实际上,在我打字的时候SL4A的新版本已经诞生(放心使用最新版吧) —随着它们的成长,它们可以实现更多的可能性。在任何情况下,保持你的Android应用短小轻快吧。

创建你的第一个Android PHP应用的更多相关文章

  1. 从0系统学Android--1.3创建你的第一个 Android 项目

    1.3 创建你的第一个 Android 项目 环境搭建完成后,我们就可以写下我们的第一个项目了. 1.3.1 创建 HelloWorld 项目 在 Android Studio 的欢迎页面点击 Sta ...

  2. 【Android开发】创建你的第一个Android项目

    原文:http://android.eoe.cn/topic/summary 本文中你将了解到: 1. 使用Eclipse创建项目 2. 使用命令行创建项目 你还应该阅读: 1. 安装SDK(官网页面 ...

  3. 1.3创建你的第一个Android项目——Android第一行代码(第二版)笔记

    创建HelloWorld项目 如果是第一次,会经过漫长的等待. 启动模拟器 可以用第三方模拟器,也可以用官方集成的 点击后出现如下界面,可创建多个模拟器,如图,我已经创建好了一个,如果你没有,就点击下 ...

  4. 用Kotlin创建第一个Android项目(KAD 01)

    原文标题:Create your first Android project using Kotlin (KAD 01) 作者:Antonio Leiva 时间:Nov 21, 2016 原文链接:h ...

  5. 3.创建第一个android项目

    安卓开发学习笔记 1.安卓开发之环境搭建 2.SDK目录结构和adb工具及命令介绍 3.创建第一个android项目 1.打开Eclipse,选择File——>new——>others.. ...

  6. 创建一个Android项目

    当我们的eclipse安装了SDK后,点击Window-->Perference-->DDMS.eclipse界面立即转为DDMS界面. 这时,我们可以打开我们的服务端(安卓模拟器或者是我 ...

  7. 认识Activity,创建第一个android应用-Hello Word

    2016-04-05 配置好Java.eclipse和Android环境就花费了一天时间.下载SDK真是费了不少时间.现在终于找到解决SDK更新的好方法了(更新自己电脑上的hosts文件,就可以使用G ...

  8. Android基础之用Eclipse搭建Android开发环境和创建第一个Android项目(Windows平台)

    一.搭建Android开发环境 准备工作:下载Eclipse.JDK.Android SDK.ADT插件 下载地址:Eclipse:http://www.eclipse.org/downloads/ ...

  9. 创建一个Android工程

    Creating an Android Project 原文演示了怎么通过Android Studio和命令行两种方式来创建一个Android工程. 原文链接:http://developer.and ...

随机推荐

  1. HTTP协议(转自:小坦克博客)

    原文地址:http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html HTTP协议详解 当今web程序的开发技术真是百家争鸣,ASP ...

  2. 病毒侵袭持续中 - HDU 3065(AC自动机,判断子串个数)

    分析:依然是一个模板题,不过在写建立失败指针的地方竟然写错了三次....看来现在状态不太好.   代码如下: ============================================= ...

  3. Google Dataflow

    十分钟了解分布式计算:Google Dataflow 介绍 Google Cloud Dataflow是一种构建.管理和优化复杂数据处理流水线的方法,集成了许多内部技术,如用于数据高效并行化处理的Fl ...

  4. Arduino 串口篇 Arduino发送二进制 send binary via RS232-to-USB to PC

    有用的链接在这里:http://hi.baidu.com/mizuda/item/06b7fdc1d0e45a0ec710b2dd 更加详细的内容请查阅Arduino官方:http://arduino ...

  5. Go 语言变量作用域

    作用域为已声明标识符所表示的常量.类型.变量.函数或包在源代码中的作用范围. Go 语言中变量可以在三个地方声明: 函数内定义的变量称为局部变量 函数外定义的变量称为全局变量 函数定义中的变量称为形式 ...

  6. ASP.NET Core 2.1 使用Docker运行

    重要提示,本文为 ASP.NET Core 2.1 如果你是 2.2 那么请将文中的镜像换为 microsoft/dotnet:2.2.0-aspnetcore-runtime 即可,其他操作一样 1 ...

  7. 第二章:蓝色巨人 IBM公司

    COBOL(面向商业的通用语言) DEC(数字设备公司)华生实验室 造成失败的原因: 1,没有经营终端消费型产品 2,技术的流失 3.没有在意对手 成为的方法:合并,保守,谨慎 研究员的工作: 1,发 ...

  8. Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象。

    Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象. 语法EDIT Object.defineProperty(obj, ...

  9. MMORPG 游戏服务器端设计

    http://www.oschina.net/question/12_22983 这里给出一种宏观把握MMORPG服务器设计的文章,适合入门,读完后对服务器端的设计能有大概的掌握,方便对感兴趣的部分进 ...

  10. loadrunner参数使用总结

    使用loadrunner进行性能测试,在准备脚本阶段参数是不可避免要使用到的,现把参数的各种设置取值方式总结一下,方便日后查阅: update value on Sequential顺序取值下的取值结 ...