欢迎光临
我们一直在努力

SL4A开发:无需Java,轻松编写应用

关于在某平台进行开发, 存在一个常见误解, 即编写代码必须使用Java™语言。实际上, 通过Layer for (SL4A)项目, 您将拥有多种选项。SL4A刚开始之时, 是一个仅完成20%的项目, 该项目由员工Damon开发。此项目几乎耗费2年时间, 拥有了4个主版本。

存在一个为诸多脚本编写语言, 诸如 Lua、Perl, 和 Rhino 提供平台的 SL4A, 它有支持基础 Shell 脚本编写的情况, 当前, SL4A 项目的部分发展成了一个独立项目, 其部分原因在于的流行, 以及有着从主要 SL4A 版本周期分离新函数这一需要。

本文着重聚焦于借助 来基于 平台撰写应用程序。 当属一个具备强大功能的工具, 能够编写简易脚本以及复杂的多线程应用程序。于 之上运用 最大的优势在于拥有机会去运用成千上万行已然编写完成的代码, 并且这些代码全都是免费的。是一种易于学习的语言, 要是您之前从来都未曾使用过, 能够在 上寻觅到诸多资源, 助力您尽快熟练运用。

安装和设置

在着手运用SL4A展开开发以前, 务必要下载并且安装若干必备工具。其一乃是完整的Java Kit(JDK)。您能够于网站之上寻觅到该工具的最新版本。

其次, 您得去下载kit(SDK), 在开发人员主网站那儿有两种格式能供下载, 一种是.zip文件, 另一种是.exe文件, 要是您去下载并运行.exe文件的话, 就会出现个界面, 它会要您去选SDK版本以及想要安装的支持文件(见图1)。

图 1. 选择您要下载的 SDK 选项

对于本文,我在 ® 7 64 位机上进行安装和测试。

鉴于本文所涉内容是围绕运用特定平台来开展应用程序开发的, 很明显您得于开发机器之上进行安装, 它自身并不具备, 在撰写本文这个时间节点, SL4A的版本是2.6.2, 能够下载可以保持兼容的2.6的32位或者64位版本。

针对您的 PATH 进行声明的这件事里, 放入一些 SDK 链接, 这是个相当不错的主意, 如此一来就能让启动 SDK 以及各种各样别家的工具, 变得更加简便容易。想要在7这个上面达成做到这一点的目的, 那就去执行后续的以下这些步骤:

按下按键, 并且完成单击的这个动作。在那文本对话框之内, 进行输入这项操作。单击它所标记的 Edit the。于打开的那个窗口当中, 去单击 , 接着在出现的 User 列表里边挑选 PATH 变量。再去单击 Edit , 随后把该路径增添到您的 SDK 工具目录里。

需要添加以下字符串:

;C:\\Users\\paul\\Downloads\\android-sdk-windows\\platform-tools

要在把一条新路径增添至一个全新目录之先, 先得增添上分号 (;)。待输入完毕之后, 要点击 OK 三次。

在目录命中不能出现空格

当把SDK安装于一个名称里含有空格的目录之时, 某些工具(像模拟器)或许无法启动, C:\\ Files\\-sdk-处的默认位置亦是这般情况。

需在设备之上开展 SL4A 的安装操作, 这与其他应用程序的具体安装流程相类似。您能够借助您所拥有的设备, 去浏览主导 SL4A 项目的网站里的 QR 代码, 以此来完成 SL4A 安装文件的下载事宜。当下载操作完成之后便会自行启动。在这个时候, 您能够看到一个呈现出来的安装界面, 就如同图 2 所展示的那般。

图 2. SL4A 安装界面

单击  启动该流程。

而后一步是于您的设备之上进行安装, 您能够运用任意的几种方式予以达成, 自模拟器里, 您可于浏览器搜索框(参照图3)当中键入sl4a。

图 3. SL4A 下载界面

按下轻点.apk链接, 以此开启下载进程。若要切实启动安装程序, 需经由点击, 并且把模拟器界面最上方朝着界面最下方施力拽拉, 借此查看通知界面。点击消息会促使for安装程序得以启动运行(详情参照图4)。

图 4. for 初始安装界面

用手指轻触一下, 就能触发一个进程, 此进程会去下载并且打开好多.zip 文件。要是就为了让这篇文章描述起来更便利些, 那么只需要用手点一下主安装界面上的那个(图 5)就行。

图 5. for 主安装界面

您理应能够瞧见, 3个独立进程窗口。头一个窗口展现下载, 以及将提取的文件传送到SD卡。要是一切顺遂, 呈现“ ”消息。

SDK 基础

有一种可使用SL4A测试吾代码的方式, 其存在两个基本办法, 首先采用模拟器, 再者应用真实物理设备。在SDK所提供的基础模拟器功能以及与之息息相关能够利用工具打造出一个具备与物理设备呈现相同特征的模拟设备。于某些情形之下, 就像平板电脑附加组件一样, 存在着一个借助预配置而成就的模拟器能够供人使用。

SDK能够当作一个更新管理程序以及一个虚拟设备创建工具, 每当你开启SDK之时, 它会连接至开发人员网站去查看新版本, (你能够点击取消, 略过这一步骤), 在这个时候, 你能够看见SDK and AVD窗口, 就如图片6所呈现的那般。

图 6. SDK 和 AVD

在目录树里进行选择, 会于细节面板当中呈现先前定义的全部虚拟设备(AVD)。若要创建一个全新模拟设备, 那就单击New。在“New (AVD)”窗口, 提供Name以及SD Card Size字段所需要的信息。图7展示了测试设备的记录, 名称里面不可以包含空格, 至少要留出100MB用于存储。为您的目标设备挑选恰当的版本。该下拉菜单仅仅显示之前下载的选项。

图 7. New AVD 向导

之后, 点击 AVD, 弹出的窗口会给出新设备的详细情况, 若要开启任何已有的虚拟器图像, 选定目标, 接着点击 Start, 在该窗口, 您能够持续保留默认的屏幕大小, 或者选取 Scale to real size 复选框来选择更大的尺寸, 选为 7 的数值好像效果挺好(见图 8), 启动一个空白的模拟器, 勾选 Wipe user data 复选框。

图 8. AVD 驱动选项

SDK所供给的另外一个绝不可少的工具是(ADB), 此工具具备一些效能, 像是安装应用程序(.apk文件), 从一个设备拷贝文件或者把文件拷贝至设备。并且在该设备上发布Shell命令, 实际上, 您同样能够运用ADB在一个设备上启动SL4A, 借此时您就能够从工作站执行程序。将 TCP/IP 流量从设定了环境变量(其中 , value 为 9999)从而依此外移开来的端口 9999 借助 ADB 前移至设备特定端口, 以此举措所要作为的是在您的主机工作站与设备之间创建联系, 开启一个命令窗口以后, 就要输入以下命令:

$ adb forward tcp:9999 tcp:42306
注意:该命令可能无法启动,如果存在多个设备,您可以选择-s命令指定设备进行操作。
我的机器上开启了 模拟器和真机,所以器不动
如果使用public服务模式,则还需要配置环境变量:
AP_HOST=192.168.0.100  # Use set AP_HOST=192.168.0.100 on Windows=192.168.0.100  # Use set AP_HOST=192.168.0.100 on Windows

<span style="color:#880000">注意: 如果设备上启动的是public服务,则windows是通过wifi连接、访问设备, 无需执行adb命令。</span>
<span style="color:#880000">只需要配置AP_PORT 、AP_HOST使其同设备保持一致即可</span>

用于设备的第二个端口号, 是来自设备的服务端口, 这个一定要对。对于最新版本的SL4A, 可在首选项里设置这一数值。而对于标准版本, 必须采用SL4A所提供的数值。

当下, 开启 SL4A, 随后点击 Menu。于窗口底端的 6 个选项里, 点击 View, 接着点击(见图 9)。

图 9. 从 SL4A 菜单启动远程服务器

再一次单击 Menu,然后单击  启动一个私有服务器。

对于真实的设备来讲, 当中存在的区别在于, 是借助USB端口去启动服务器, 然而并非如此的别种启动服务器方式而是靠Wi-Fi来启动。要是再次查看通知所涉及的页面, 那么您能够看到SL4A服务正处于运行的状态(需要详细对照查看所给出的名为图10的图文)。

图 10. 通知界面

您要是单击消息去查看分配的实际端口号, 在这种情形之下, 您能够使用端口号42306当作adb命令里的第二个TCP值, 此时, 您可以着手编写一个代码, 并且在该设备上开展测试。

for 中的 Hello World

编写“hello world”程序, 在任何介绍编程的文章里头, 将这事编排出来, 差不多已然成了一种习惯。我这般去做, 用以表明您能够拥有多种方式, 借助SL4A去编写并测试您的代码。紧随其后, 一块瞅瞅这些代码究竟怎样呈现:

import android droid = android.Android() result = droid.makeToast('Hello, world!')

每种 SL4A 脚本编写语言都会采用一个导入文件(在本情形下, 采用的是 .py), 目的是用于在该脚本以及底层应用程序编程接口 (API) 之间构建接口。您能够直接于设备内输入此段代码, 方法是借助解释器(参见)或者运用其他编辑器。若要使用解释器, 需在 界面, 挑选择 2.6.2 来开启 解释器。在呈现结果的界面当中, 您能够输入上述代码, 在最后一行, 您会瞧见一个弹出窗口, 里面写有 “Hello, world!” 字样。

在模拟的或者真实的设备里执行键入, 可能会让人感觉单调又乏味。当把ADB 工具结合起来, 在PC上编写代码, 并且在设备上开展测试时, IDLE的控制台以及编辑器是绝对不能少的。您唯一需求的, 是一个.py文件的本地副本儿。您可以从那个.zip文件里提取, 这个.zip 文件是在SL4A下载页面上给提供的, 或者运用adb pull命令, 把它从设备当中转移出来。在您主系统驱动器的根目录里边, 有一个叫做的目录, 能够方便地镜像模拟设备里的所有东西。就一个关于文件路径的方面来讲, 这致使您于有需求去访问文件系统的本地机器那儿运行脚本变得颇为便利。图11展现出了IDLE控制台上的Hello World脚本。

图 11. IDLE 控制台上的 Hello World

假如开启服务器, 并且去执行adb命令的话, 您就会发觉没有出现错误的消息, 反而是出现, 了 “Toast” 消息, 就如同图12所展示的那样。

图 12. Hello World 弹出消息

在其中, 能够借助单击 File > New 在 IDLE 里启动一个编辑窗口。此窗口为您给予了源自您开发机器的一整套编辑以及测试功能, 可在模拟或者真实设备当中予以使用。E5.GoUlu.INFo B014.GoUlu.INFo 01.GoUlu.INFo 584.GoUlu.INFo 2E72.GoUlu.INFo 2A.GoUlu.INFo 966C.GoUlu.INFo 2E7.GoUlu.INFo A6BD.GoUlu.INFo 00F.GoUlu.INFo 55B0.GoUlu.INFo 9D7E.GoUlu.INFo 254.GoUlu.INFo BB5A.GoUlu.INFo E7ED.GoUlu.INFo EFA3.GoUlu.INFo 61C5.GoUlu.INFo F327.GoUlu.INFo E48B.GoUlu.INFo 7C3.GoUlu.INFo 6B3.GoUlu.INFo EC5.GoUlu.INFo 93.GoUlu.INFo DD.GoUlu.INFo 68.GoUlu.INFo 32D.GoUlu.INFo 2EDE.GoUlu.INFo 97.GoUlu.INFo 080.GoUlu.INFo C5.GoUlu.INFo 90A1.GoUlu.INFo A9.GoUlu.INFo 5854.GoUlu.INFo F5.GoUlu.INFo 847.GoUlu.INFo 59B.GoUlu.INFo 670.GoUlu.INFo FA9.GoUlu.INFo 15.GoUlu.INFo EF7.GoUlu.INFo 53AB.GoUlu.INFo 57.GoUlu.INFo 6B.GoUlu.INFo 33C0.GoUlu.INFo 960.GoUlu.INFo 117.GoUlu.INFo EC39.GoUlu.INFo 2D9.GoUlu.INFo 13.GoUlu.INFo 1C5D.GoUlu.INFo 14F3.GoUlu.INFo 3B2.GoUlu.INFo 9EF.GoUlu.INFo 0AC.GoUlu.INFo 05D.GoUlu.INFo AAD.GoUlu.INFo 4245.GoUlu.INFo 749.GoUlu.INFo 540.GoUlu.INFo ACF7.GoUlu.INFo 9002.GoUlu.INFo 77.GoUlu.INFo C9.GoUlu.INFo 07B.GoUlu.INFo F3BA.GoUlu.INFo CE7.GoUlu.INFo 6F91.GoUlu.INFo DC5.GoUlu.INFo 54.GoUlu.INFo 29.GoUlu.INFo 88F9.GoUlu.INFo 7B6C.GoUlu.INFo EB48.GoUlu.INFo A.GoUlu.INFo 96.GoUlu.INFo 08F.GoUlu.INFo DBA6.GoUlu.INFo AFAD.GoUlu.INFo 07.GoUlu.INFo A9D.GoUlu.INFo FB05.GoUlu.INFo 2C0.GoUlu.INFo E32.GoUlu.INFo D5.GoUlu.INFo 2C.GoUlu.INFo E2.GoUlu.INFo C390.GoUlu.INFo B80E.GoUlu.INFo 06.GoUlu.INFo 1956.GoUlu.INFo 94.GoUlu.INFo 8DF1.GoUlu.INFo B0F.GoUlu.INFo F7A4.GoUlu.INFo 71.GoUlu.INFo 8F2A.GoUlu.INFo F4.GoUlu.INFo 09A6.GoUlu.INFo A9F.GoUlu.INFo 90A.GoUlu.INFo 318.GoUlu.INFo F99.GoUlu.INFo F8.GoUlu.INFo 393.GoUlu.INFo 8188.GoUlu.INFo F577.GoUlu.INFo B2.GoUlu.INFo AC1.GoUlu.INFo 5B.GoUlu.INFo 3A8.GoUlu.INFo 2914.GoUlu.INFo 4C.GoUlu.INFo 99.GoUlu.INFo 84C.GoUlu.INFo 1B11.GoUlu.INFo 19.GoUlu.INFo CD.GoUlu.INFo CAE.GoUlu.INFo 87.GoUlu.INFo AE2.GoUlu.INFo CFF.GoUlu.INFo 0A07.GoUlu.INFo 997.GoUlu.INFo 58.GoUlu.INFo C3AB.GoUlu.INFo 2E93.GoUlu.INFo F7D.GoUlu.INFo 8D8.GoUlu.INFo 6EA.GoUlu.INFo D6.GoUlu.INFo 21D8.GoUlu.INFo BD77.GoUlu.INFo 1E34.GoUlu.INFo 2BE.GoUlu.INFo 6.GoUlu.INFo FC.GoUlu.INFo 17.GoUlu.INFo 963.GoUlu.INFo F2.GoUlu.INFo 8B3.GoUlu.INFo E047.GoUlu.INFo A4.GoUlu.INFo B.GoUlu.INFo D7.GoUlu.INFo 0605.GoUlu.INFo 59.GoUlu.INFo 746B.GoUlu.INFo 01E3.GoUlu.INFo C4D.GoUlu.INFo B1C1.GoUlu.INFo 55AC.GoUlu.INFo D4D.GoUlu.INFo AF7C.GoUlu.INFo 082.GoUlu.INFo 74.GoUlu.INFo 146.GoUlu.INFo 451.GoUlu.INFo 6EA8.GoUlu.INFo 665.GoUlu.INFo 14.GoUlu.INFo 46F.GoUlu.INFo D5C.GoUlu.INFo CA58.GoUlu.INFo 75.GoUlu.INFo 03.GoUlu.INFo 69.GoUlu.INFo AAA4.GoUlu.INFo B21.GoUlu.INFo 5347.GoUlu.INFo E.GoUlu.INFo FC3D.GoUlu.INFo 3CFA.GoUlu.INFo 738.GoUlu.INFo 4B.GoUlu.INFo 88.GoUlu.INFo 20D.GoUlu.INFo 9A8.GoUlu.INFo C6C0.GoUlu.INFo 5F0C.GoUlu.INFo C640.GoUlu.INFo F43.GoUlu.INFo 95C8.GoUlu.INFo FDC.GoUlu.INFo CC.GoUlu.INFo 09.GoUlu.INFo 03F0.GoUlu.INFo AB.GoUlu.INFo B9.GoUlu.INFo 1A.GoUlu.INFo 0DD.GoUlu.INFo 99A.GoUlu.INFo 8902.GoUlu.INFo AF.GoUlu.INFo 456.GoUlu.INFo 1F.GoUlu.INFo 2E4.GoUlu.INFo 45.GoUlu.INFo 22.GoUlu.INFo 6D6F.GoUlu.INFo A1A.GoUlu.INFo 1B.GoUlu.INFo 84.GoUlu.INFo DB.GoUlu.INFo 7B91.GoUlu.INFo 10.GoUlu.INFo 983F.GoUlu.INFo BD89.GoUlu.INFo 3AD5.GoUlu.INFo 44.GoUlu.INFo 5135.GoUlu.INFo CDA.GoUlu.INFo 95C.GoUlu.INFo 004.GoUlu.INFo 9D7.GoUlu.INFo 9CD.GoUlu.INFo C7B0.GoUlu.INFo 40C0.GoUlu.INFo 0CD.GoUlu.INFo 1.GoUlu.INFo 378.GoUlu.INFo 33A.GoUlu.INFo 4007.GoUlu.INFo FC14.GoUlu.INFo 17B.GoUlu.INFo E7.GoUlu.INFo 338.GoUlu.INFo 83E.GoUlu.INFo F305.GoUlu.INFo 833F.GoUlu.INFo 820.GoUlu.INFo 7D.GoUlu.INFo E9.GoUlu.INFo F966.GoUlu.INFo 7EB.GoUlu.INFo A06.GoUlu.INFo F18.GoUlu.INFo 497.GoUlu.INFo FB.GoUlu.INFo 2EE.GoUlu.INFo 11D.GoUlu.INFo 9.GoUlu.INFo 85.GoUlu.INFo B18.GoUlu.INFo C66E.GoUlu.INFo 714.GoUlu.INFo F12.GoUlu.INFo FAE.GoUlu.INFo B13A.GoUlu.INFo BDCB.GoUlu.INFo E6.GoUlu.INFo 6F.GoUlu.INFo 678.GoUlu.INFo 641.GoUlu.INFo 8C.GoUlu.INFo 9FC.GoUlu.INFo 14A.GoUlu.INFo 5.GoUlu.INFo 24.GoUlu.INFo 2.GoUlu.INFo 3BF.GoUlu.INFo C234.GoUlu.INFo 26F1.GoUlu.INFo D.GoUlu.INFo 72F.GoUlu.INFo B4.GoUlu.INFo 41.GoUlu.INFo 2810.GoUlu.INFo 83.GoUlu.INFo 6B9.GoUlu.INFo 3035.GoUlu.INFo E7E2.GoUlu.INFo CC1B.GoUlu.INFo D65.GoUlu.INFo 1EE0.GoUlu.INFo 7.GoUlu.INFo 52CD.GoUlu.INFo 6EFE.GoUlu.INFo EC2C.GoUlu.INFo 3.GoUlu.INFo 0BD.GoUlu.INFo C.GoUlu.INFo F.GoUlu.INFo CA4.GoUlu.INFo 0.GoUlu.INFo 823A.GoUlu.INFo 8.GoUlu.INFo 4.GoUlu.INFo B7.GoUlu.INFo C96.GoUlu.INFo DE7.GoUlu.INFo 76B.GoUlu.INFo 1BB.GoUlu.INFo WWw.EaSyClAsS321.CoM/tags-2850.html WWw.EaSyClAsS321.CoM/tags-2849.html WWw.EaSyClAsS321.CoM/tags-2848.html WWw.EaSyClAsS321.CoM/tags-2847.html WWw.EaSyClAsS321.CoM/tags-2846.html WWw.EaSyClAsS321.CoM/tags-2845.html WWw.EaSyClAsS321.CoM/tags-2844.html WWw.EaSyClAsS321.CoM/tags-2843.html WWw.EaSyClAsS321.CoM/tags-2842.html WWw.EaSyClAsS321.CoM/tags-2841.html WWw.EaSyClAsS321.CoM/tags-2840.html WWw.EaSyClAsS321.CoM/tags-2839.html WWw.EaSyClAsS321.CoM/tags-2838.html WWw.EaSyClAsS321.CoM/tags-2837.html WWw.EaSyClAsS321.CoM/tags-2836.html WWw.EaSyClAsS321.CoM/tags-2835.html WWw.EaSyClAsS321.CoM/tags-2834.html WWw.EaSyClAsS321.CoM/tags-2833.html WWw.EaSyClAsS321.CoM/tags-2832.html

赞(0)
未经允许不得转载:171主机测评 » SL4A开发:无需Java,轻松编写应用
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址