教 程 目 录
SL4A教程
适用于Android的脚本层(SL4A)是一个帮助编写面向Android平台的脚本的库. SL4A支持许多脚本语言,如Perl,Python,JRuby,PHP等.它还可以扩展为支持新语言.虽然Java可以用于Android开发,但是当您需要做的只是编写简单的测试用例或打开或关闭设备上的设置时,这是一件好事.本教程将帮助您使用简单的Python脚本自动化您的Android设备.
受众
Android是Java爱好者的垄断者.好吧,如果你不是一个Java崇拜者并且想知道如何开发Android应用程序,那么这对你有利.本教程将向您介绍如何使用Python开发Android应用程序.
先决条件
在开始学习本教程之前,我们假设您已经知道关于Python.如果您不太了解这些概念,那么我们建议您阅读我们关于Python的简短教程.
本文地址:https://itbaoku.cn/tutorial/sl4a-index.html
相关问答
是Android(SL4A)的项目脚本图层,这些天积极开发或用于应用程序? 如果不是Android上的脚本(Python)的替代方案是什么? 似乎是一些过时的,自2012年以来没有更新. https://code.google.com/p/android-scripting/下载/列表 解决方案 是的,众多人已经分叉了项目并在Github上保持. https://github.com/kuri65536/sl4a https://github.com/ainsophical/droid_python 其他解决方案 查看播放市场上的qpython应用程序,他们有一个sl4a libs + kivy,也是一个pip安装程序. play
)
我想从不同的SL4A脚本内启动背景SL4A脚本(在远程设备上).我可以通过运行这样的内容从终端启动脚本: $ am start -a \ com.googlecode.android_scripting.action.LAUNCH_BACKGROUND_SCRIPT -n \ com.googlecode.android_scripting/.activity.ScriptingLayerServiceLauncher -e \ com.googlecode.android_scripting.extra.SCRIPT_PATH /sdcard/sl4a/scripts/main.py 我无法将其转换为python中的startActivity呼叫. 一个不同的问题在打开推特客户端很好地工作,但我不知道如何扩展该代码.例如,您如何添加脚本路径,以及您将在哪里放置com.googlecode.android_scripting/.activity.ScriptingLayerServiceLauncher? 解决方案 之后,许多失败的尝试,我现在在Ruby中有这个工作 - 我比Python更容易地生成JSON extras. 重要! 在命令行版本中,您调用"com.googlecode.android_scripting/.activity.script
)
我在/sdcard/sl4a/scripts/twitter.py.py 中有以下内容 import android droid = android.Android() droid.launch('com.twitter.android') ,如果我在控制台或背景中运行它,请立即使用代码1退出,并且日志文件为空. 如果还有其他方法可以从某种脚本启动应用程序,我对建议开放.我知道塔斯特,但我宁愿写文本脚本也不愿使用向导. 解决方案 您可以使用 startActivity 为此: import android droid = android.Android() droid.startActivity('android.intent.action.MAIN', None, None, None, False, 'com.twitter.android', 'com.twitter.android.StartActivity' ) 请参阅语法 a>: startActivity( String action, String uri[optional], String type
)
我刚刚订购了一台Android智能手机,并希望开始创建自己的应用程序.现在的问题是使用哪种语言,使用SL4A(以前ASE)的本机Java或Python. 我倾向于python,据我所知,它比Java好得多,但是我想知道在Android上使用"第二类"语言会缺少什么.在SL4A网站上,它也据说是Alpha质量软件,这并不是完全令人鼓舞的. 我也不确定脚本环境的局限性以及它们是否有问题. 解决方案 目前您无法使用SL4A使用Python(或任何其他脚本语言)创建可发布的程序.我听说过谣言说这是Google正在努力的事情,但是即使它们确实使Python应用程序可以与Java相比,Python应用程序可能会缓慢而渴望.另外,脚本API仅可让您访问本机Java API的有限子集.目前,我不考虑将SL4A用于认真的开发工作,而仅用于一次性脚本和原型. 看看 scala .它是JVM上的一种静态类型的语言,但使用类型推理来删除您在Java中获得的大多数噪声.它还充分支持功能编程,并具有许多毕达斯尼亚功能.因为它是静态键入的,所以没有任何缺点,它的效率与直爪瓦一样有效.恕我直言,这是Java应该首先是的语言. 很多人在博客上使用Android上使用Scala,因此请搜索更多信息. 其他解决方案 更有可能取决于您将开发哪种类型的应用程序. 我将从Java
)
我正在寻找sl4a中的简单文件选择器对话框.我发现了一些本地对话框在这里,但没有找到一个我在寻找. 希望我能找到容易可用的东西来节省时间.像filename = fileopendialog()这样的最小代码将是一个奖励. 有什么想法? 解决方案 我决定写自己的书(请参阅下面的参考).这可能会变得更好,任何建议. import android, os, time droid = android.Android() # Specify root directory and make sure it exists. base_dir = '/sdcard/sl4a/scripts/' if not os.path.exists(base_dir): os.makedirs(base_dir) def show_dir(path=base_dir): """Shows the contents of a directory in a list view.""" #The files and directories under "path" nodes = os.listdir(path) #Make a way to go up a level. if path != base_dir: nodes.
)
sl4a 的所有脚本都在/sdcard/sl4a/scripts 下 是否可以运行位于其他地方的脚本: 例如来自/sdcard/dropbox/pyscripts[眨眼] 解决方案 我认为此时此刻的答案是否定的. 该应用程序没有设置该路径的选项.我唯一的另一个想法是创建一个从 dropbox 文件夹到脚本目录的符号链接.但这也有一些主要问题,最大的问题是大多数 SD 卡都是用 FAT32 格式化的,它根本不支持符号链接.如果您有不同的文件系统,则可以尝试该路径.不确定是否需要 root - 我想在 sdcard 上写入不应该需要.也不确定应用程序是否正确处理链接,但理论上整个链接应该对它不可见并作为普通文件夹处理. 其他解决方案 这有点老了,但是我来这里是为了寻找这个问题的答案,我找到了一个,所以我想我应该与任何人分享否则谷歌搜索和我一样的东西. 当您发出 Android Intent 以在 SL4A 中运行脚本时,您可以在文件系统上指定任何脚本.您可以编写脚本来发出此意图(或应用程序,如果您愿意的话).这是 Python 中的一个示例: import android droid = android.Android() activity = 'com.googlecode.android_scripting.action.LAUNCH_
)