I am currently learning how to code in Python. My goal as of right now is to learn how to write apps for Android.
Recently, I have been thinking about switching over to Java. However, since I am a beginner I find Python comes relatively easy to me. If I write an Android app in Python using sl4a, does the end user need to have sl4a installed for the app to work?
If so, I think I am just going to start learning Java. Thanks for the help!
Yes. sl4a requires the sl4a app to be installed on the user's Android device.
sl4a is essentially a runtime application that needs to be installed before the user can run your app built and run on top of sl4a.
AFAIK sl4a is not just for Python but other languages too.
Update:
If you're looking to build cross-paltform (Mobile) apps in Python; IHMO the best option for this right now is Kivy. I'd encourage any Python developer wanting to get into the Mobile platform space to look at this :)
Related
Is there a way to use python and maybe kivy or pyqt to build an app that runs from an android phone that automates WhatsApp. I have seen apps(like automate) on the play store that do it yet I want to do it myself plus most likely those apps aren't built in python. Can anybody point me in the right direction?
I am a python learner; would like to develop few applications in Android platform. Is there any Python bindings available for developing Android apps ?
Also I would like to know, Using python binding for development will make any performance overhead compared to java ?
You can use ASE
Google Announce Android Scripting Environment
The ASE allows developers to develop directly on the Android powered
device without the need for a separate computer using Android’s
development environment.
Scripts can be run interactively in a terminal, started as a long
running service, or started via Locale. Python, Lua and BeanShell are
currently supported, and we’re planning to add Ruby and JavaScript
support, as well.
It can be downloaded from here:
http://code.google.com/p/android-scripting
You'll probably want to have a look at the Kivy project.
Wikipedia has a bit to say about it, too.
I have to regularly test the availability and functioning of a movie rental website. I wrote a Windows program which is able to automate a web browser according to a script, so this task is basically solved. Now I have to automate the mobile version of this web application: a native iOS app and a native Android app.
These apps are closed source, so cannot be modified in any way. I think the test app should be deployed on the test devices (iPhone, iPad, Galaxy Tab, Galaxy S II), but I must be able to remote control it. I mean, I would like create a connection between the test devices and a PC, upload test scripts from the PC to the devices, run them, and download the test results to the PC. The test script should start the app to be tested, manipulate its GUI (fill editboxes, push buttons etc.), and follow its response somehow, for example by analyzing the GUI (the existence of some GUI elements, their caption, etc.), analyzing screenshots, and/or inspecting IP packets.
I wrote lots of similar test programs for Windows: I used ShellExecute, PostMessage, FindWindow, the WinPcap library etc., so I know how such a program should work. But since I never wrote applications for mobile OS's, I don't even know whether there are similar APIs and libraries for iOS and Android.
I would like to know where to start, I mean, which SDKs and developer tools could be used to write such an application. I'm also interested in commercial solutions. I would really appreciate any help.
I like "Calabash-iOS/Calabash-Android" by LessPainful. That is the best for me.
free
available on iPhone and Android
record and playback
test on native and simulator
They doesn't have a GUI IDE. They are Ruby-based solutions and it is very easy to write test case script, like this:
Then I swipe left
And I wait until I don't see "Please swipe left"
And take picture
Also it can be
Then I touch the "login" button
to tap a button, or
Then I fill in "placeholder" with "text to write"
to write something to a textbox.
And the script can be shared by Calabash-iOS and Calabash-Android. That feature is convenient for developers who make both iPhoneApp and Android App.
I thought MonkeyTalk was nice but actually unstable, at least in my environment.
Sometimes MonkeyIDE crashed, so we have to do debug of MonkeyTalk...
I hope this helps you.
MonkeyTalk looks promising. Features from the Gorilla Logic website:
Free & Open Source
Automated testing of iOS, Android, HTML5 and Adobe Flex applications
Cross-platform recording and playback
Test native, web, or hybrid apps, on iOS simulators, Android
emulators or real devices (no jailbreaking required)
Everything from simple "smoke tests" to sophisticated data-driven
test suites
Packet tracing: iOS, Android, Android
Selenium offers drivers for mobile devices and emulators. It is a Google project. They have good documentation. It has an IDE for rapid prototyping of testing suites and support for many languages like ruby, PHP, c#, etc.,
If scripting is your preffered solution on android you can easily import and run scripts after you install the Scripting Layer for Android. Just download the latest apk file, import the script and run it. This isn't available on iOS but half of your problem may be solved with this.
I know this is an old post but any one reading in 2016 first choice for automation should be Appium ( works on both IOS /Android). All the tools mentioned above have to be built with the App. Appium does require any build up with App code. Its hugely popular with variety of programming language support ( PHP/JAVA/RUBY/PYTHON). [Link]: appium.io and [Link]: https://github.com/appium/appium
Is it possible to run the ruby on rails, development environment on android, like we do on mac/ubuntu/windows. If not then, please post comments to why isn't possible?
You might want to consider Rhodes. Rhodes is a Ruby MVC environment for building mobile apps for both Android and iOS. It's folder structure is not exactly like rails, but similar enough that it should be an easy transition.
Scripting Layer for Android (SL4A): http://code.google.com/p/android-scripting/
For Ruby specifically: http://code.google.com/p/android-ruby/
The idea of running Rails on Android devices is very appealing to me. However, I'm afraid it may not be easy or even possible at the moment.
Key requirement for developing Rails applications is having a Ruby interpreter on device. As for as I know, the only real candidates for this are:
Having Scripting Layer for Android (SL4A) along with JRuby for Android, or alternatively
Using Ruboto
After somehow getting the Ruby running, you still would need to figure out how to install and use RubyGems, Rails itself as well as all other libraries your web application may depend on (they may or may not work on Android).
As a summary, at this moment I would be rather looking into some alternatives. For instance, installing RoR on some remove machine and connecting to it from Android device with some SSH application.
I wrote an Android app with about 11.000 lines code. I need to port the app to Windows, Mac OS and other platforms as well, but I don't have the time and knowledge to do so. Is there a way to covert the Android app normal Java App that will run under Windows and Mac OS X without starting a very slow Android emulator?
I don't think there is another solution. I'm pretty sure that there isn't any solution now, having the whole code written for Android.
If from the beginning you knew this, maybe you would developed your application using a tool like Appcelerator that allows you to build cross-platform native applications. But it has an own syntax, and transforming now your code from Java to Objective-C or C#.
Android is not just some Java Libraries, it is an operating system, so you can't just port your "libraries" and run them on MacOS or Windows.
Android is a standalone operating system and apps written for Android SDK can only run on Android OS.
There are projects that enable you to run whole Android OS inside a virtual machine: http://www.android-x86.org/
From the app that you have right now, there is no way to do it, but you could choose from a cross-platform development tools or something like that and make the app again.
You might find some cross-platforms engines here:
http://www.toolsjournal.com/tools-world/item/157-10-of-best-cross-platform-mobile-development-tools
Maybe (depends on the type of app it is) you could create one app in html5 you can check this link for explanations:
http://blog.farreachinc.com/2011/08/25/html5-will-native-apps-obsolete/
Html5 can be used in many platforms.
I think you can reuse some of the code for java based mobile phones. Mac OS is developped in objective C so no.