SL4A brings scripting languages to Android by allowing you to edit and execute scripts and interactive interpreters directly on the Android device.

Related tags

Miscellaneous sl4a
Overview

#Scripting Layer for Android (SL4A)

SL4A brings scripting languages to Android by allowing you to edit and execute scripts and interactive interpreters directly on the Android device. These scripts have access to many of the APIs available to full-fledged Android applications, but with a greatly simplified interface that makes it easy to get things done.

Scripts can be run interactively in a terminal and in the background. Python, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl, and shell are currently supported, and we're planning to add more. See the SL4A Video Help playlist on YouTube for various demonstrations of SL4A's features.

SL4A is designed for developers and is alpha quality software.

##Disclaimer

  • Even though a lot of contributors are working for Google, this is not an official Google product.
  • SL4A is no longer under active development. However, some forks of this project may be.

##Documentation

The original Google Code wiki has been converted to Markdown and is available in the wiki branch. A few of the most important pages are:

##Issues

Issues have been migrated from Google Code. However, this probject is no longer under active development. Consider responding to and filing new issues against an active fork.

##Support

Support for SL4A is provided by the community on the project mailing list.

Comments
  • expose bluetooth socket file number

    expose bluetooth socket file number

    From @GoogleCodeExporter on May 31, 2015 11:31

    Is it possible to expose bluetooth socket file descriptor?
    
    I am using the bluetooth connection RFCOMM as a transport for a twisted select 
    reactor. I guess with a fileno it would make it possible for the reactor to 
    call doRead and doWrite automatically.
    

    Original issue reported on code.google.com by [email protected] on 17 Jul 2012 at 4:58

    Copied from original issue: damonkohler/android-scripting#647

    auto-migrated Priority-Medium Type-Enhancement 
    opened by damonkohler 2
  • Hide notifications not completely hiding notifications

    Hide notifications not completely hiding notifications

    From @GoogleCodeExporter on May 31, 2015 11:31

    What device(s) are you experiencing the problem on?
    Motorola Droid Bionic
    
    What firmware version are you running on the device?
    5.9.905.XT875.Verizon.en.US
    
    What steps will reproduce the problem?
    1. Tasker initiates sendemail.py after Hide Notifications setting is checked
    2. Notification appears in notification panel at top of screen
    3. Notification disappears when sendemail.py has conpleted
    
    What is the expected output? What do you see instead?
    No notifications
    
    What version of the product are you using? On what operating system?
    Version 6, rooted Gingerbread
    
    Please provide any additional information below.
    I know the hide notifications setting also fixes potential issues with fast 
    triggers, but doesn't it also hide notifications? If not, I'd like to change 
    this "issue" to an enhancement request to add a setting to remove notifications.
    

    Original issue reported on code.google.com by heatherleigh on 10 Aug 2012 at 4:42

    Copied from original issue: damonkohler/android-scripting#650

    auto-migrated Priority-Medium Type-Defect 
    opened by damonkohler 1
  • In remote server mode bluetoothActiveConnections() lies after script reconnect

    In remote server mode bluetoothActiveConnections() lies after script reconnect

    From @GoogleCodeExporter on May 31, 2015 11:31

    SL4A r6
    
    How to reproduce:
    1. Start SL4A in remote public server
    2. Connect to remote public server (e.g. run script)
    3. Connect to BT device - 
    bluetoothConnect('00001101-0000-1000-8000-00805F9B34FB', BT_MAC)
    4. bluetoothActiveConnections() returns actual info - All ok:
    <<client: sent: "{"params":[],"method":"bluetoothActiveConnections","id":4}">>
    <<client: rcvd: 
    "{"error":null,"id":4,"result":{"39c68254-9507-481c-8e4f-1cb04e8111a0":"00:12:02
    :10:03:65"}}">>
    $result = {
                'error' => undef,
                'id' => 4,
                'result' => {
                              '39c68254-9507-481c-8e4f-1cb04e8111a0' => '00:12:02:10:03:65'
                            }
              };
    5. Disconnect to remote public server (e.g. terminate script)
    6. Reconnect to remote public server (e.g. run script again)
    7. bluetoothConnect('00001101-0000-1000-8000-00805F9B34FB', BT_MAC) will fail 
    with "bluetoothConnect('00001101-0000-1000-8000-00805F9B34FB', BT_MAC)" - It's 
    OK, since we already do this at step #3
    8. If run bluetoothActiveConnections() - it will tell me "NO active 
    connections" - WRONG:
    <<client: sent: "{"params":[],"method":"bluetoothActiveConnections","id":1}">>
    <<client: rcvd: "{"error":null,"id":1,"result":{}}">>
    $result = {
                'error' => undef,
                'id' => 1,
                'result' => {}
              };
    
    
    Perl script:
    ===========================
    use strict;
    use warnings;
    
    use Android;
    local $| = 1;
    
    my  $droid   = Android->new();
    
    my  $res = $droid->bluetoothActiveConnections();
    
        $res = $droid->bluetoothConnect('00001101-0000-1000-8000-00805F9B34FB', '00:12:02:10:03:65');
        exit if (defined($res->{error}));
    
    my  $bt_id = $res->{result};
    
        $res = $droid->bluetoothActiveConnections();
    
        $droid->bluetoothWrite("Hello!\n\r", $bt_id);
    
        exit;
    
    
    

    Original issue reported on code.google.com by [email protected] on 26 Aug 2012 at 6:54

    Copied from original issue: damonkohler/android-scripting#653

    auto-migrated Priority-Medium Type-Defect 
    opened by damonkohler 1
  • Make an official website.

    Make an official website.

    From @GoogleCodeExporter on May 31, 2015 11:31

    This project looks promising. An official website for this project would 
    greatly improve it's visibility.
    

    Original issue reported on code.google.com by TruSktr on 9 Sep 2012 at 8:58

    Copied from original issue: damonkohler/android-scripting#657

    auto-migrated Priority-Medium Type-Defect 
    opened by damonkohler 1
  • App runs with ADB but not as expected from apk

    App runs with ADB but not as expected from apk

    From @GoogleCodeExporter on May 31, 2015 11:31

    What device(s) are you experiencing the problem on? Note-2
    
    What firmware version are you running on the device? 4.1.2
    
    What steps will reproduce the problem?
    1. Create simple app which opens a webpage as an intent using droid.view() 
    2. Run the script via adb (opens the webpage)
    3. Run the script as an app via apk. App closes when it starts
    
    What is the expected output? What do you see instead?
    Expected output is webpage. Nothing is seen and the app closes
    
    What version of the product are you using? On what operating system?
    I am using linux and sl4a r6
    
    Please provide any additional information below.
    
    

    Original issue reported on code.google.com by [email protected] on 3 Oct 2013 at 4:53

    Copied from original issue: damonkohler/android-scripting#698

    auto-migrated Priority-Medium Type-Defect 
    opened by damonkohler 1
  • Nitpicking - Markdown mistakes in README.md

    Nitpicking - Markdown mistakes in README.md

    It seems somebody forgot to put a space after the hash in the markdown in README.md: #Scripting Layer for Android (SL4A) should be # Scripting Layer for Android (SL4A), which would be shown like this:

    Scripting Layer for Android

    which I suppose is what it was supposed to look like. This is the case with all of the subheadings, etc.

    Sorry for not having a more constructive issue!

    EDIT: forgot about this not being developed anymore. oops.

    opened by AlexV-P 0
  • API

    API

    • What device(s) are you experiencing the problem on?
      • ex: Nexus ???
    • What OS version are you running on the device?
      • ex: Andriod ???
    • What version of the product are you using?
      • SL4A r????
      • PythonForAndroid r??
    • What steps will reproduce the problem? 1. 2. 3.
    • Provide logcat for detail.
    • What is the expected output%3F What do you see instead?
      • expected: launch ???
      • see: stop running
    • Please provide any additional information below.
    opened by kidman789 0
Owner
Damon Kohler
Damon Kohler
A collection of the same program written in different languages.

Batch Encoders A collection of the same program written in different languages. About This program is a simple batch encoder, it allows you to add mul

Alex Cusaac 0 Nov 4, 2021
Use your old Android device as an OctoPrint server.

Use your old Android device as an OctoPrint server.

Feelfree (Filip) 1k Dec 31, 2022
A customized video view that will automatically pause video is user is not looking at device screen!!!!!

UserAwareVideoView Featured in: Medium What is this library for? UserAwareVideoView is a customizable VideoView that smartly play and pause the video

Keval Patel 51 Jun 27, 2021
Tired of manually setup test data of Kotlin data classes or POJOs? Instantiator creates Instances of any class for you so that you can focus on writing tests instead of spending time and effort to setup test data

Instantiator Tired of manually setup test data of Kotlin data classes or POJOs? Instantiator creates Instances of any class for you so that you can fo

Hannes Dorfmann 54 Dec 30, 2022
Bulletin helps you to "swipe" through your favorite events in the campus and gives you the perfect match for your better experience

Bulletin helps you to "swipe" through your favorite events in the campus and gives you the perfect match for your better experience. Right swipe to add event to your calendar and left swipe to view the next event.

GDSC Navrachana University 7 Feb 11, 2022
An application for runners and cyclists. Allows you to monitor your physical activity, weight and receive reminders about workouts.

An application for runners and cyclists. Allows you to monitor your physical activity, weight and receive reminders about workouts.

Just_Amalll 3 Feb 7, 2022
This repository contains a simple script that lets you kill gradle and kotlin daemons.

AndroidDaemonKiller This repository contains a simple script that lets you kill gradle and kotlin daemons. After updating gradle or kotlin or checking

Paul Woitaschek 25 Dec 3, 2022
Android Library to help you with your runtime Permissions.

PermissionHelper Android Library to help you with your runtime Permissions. Demo Android M Watch it in action. Pre M Watch it in action. Nexus 6 (M) N

Kosh Sergani 1.2k Dec 14, 2022
andle is an Android tool help you sync dependencies, sdk or build tool version.

andle andle is an Android tool to help you sync dependencies, SDK or build tool version. Installation Simple install by pip: $ sudo pip install andle

Jintin 58 Sep 17, 2022
Make your IDE play Wilhelm Scream effect when you are using unsafe !! operator in Kotlin

Make your IDE play Wilhelm Scream effect when you are using unsafe !! operator in Kotlin

Mikhail Levchenko 78 Nov 15, 2022
****. Use the native and support library variants instead - https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html. An android library that makes it easy to add custom fonts to edittexts and textviews

Add to your project Add this line to your dependencies in build.gradle compile 'in.workarounds.typography:typography:0.0.8' Using the views There are

Workarounds 43 Nov 6, 2021
A curated list of standards, tests and benchmarks that can be used for testing and evaluating dev-tools

A curated list of standards, tests and benchmarks that can be used for testing and evaluating dev tools Contribution Add the description of the benchm

null 13 Dec 16, 2022
A gradle plugin for getting java lambda support in java 6, 7 and android

Gradle Retrolambda Plugin This plugin will automatically build your java or android project with retrolambda, giving you lambda goodness on java 6 or

Evan Tatarka 5.3k Jan 5, 2023
A Job Queue specifically written for Android to easily schedule jobs (tasks) that run in the background, improving UX and application stability.

Development in this repository is stopped. Future development continues on https://github.com/yigit/android-priority-jobqueue ========================

Path Mobile Inc Pte. Ltd. 2.4k Dec 9, 2022
An android library for displaying fps from the choreographer and percentage of time with two or more frames dropped

DEPRECATED TinyDancer is deprecated. No more development will be taking place. Check out the Google Android developer documentation for UI performance

Friendly Robot 1.9k Jan 3, 2023
📄The reliable, generic, fast and flexible logging framework for Android

logback-android v2.0.0 Overview logback-android brings the power of logback to Android. This library provides a highly configurable logging framework

Tony Trinh 1.1k Jan 8, 2023
It makes a preview from an url, grabbing all the information such as title, relevant texts and images. This a version for Android of my web link preview https://github.com/LeonardoCardoso/Link-Preview

LeoCardz Link Preview for Android It makes a preview from an url, grabbing all the information such as title, relevant texts and images. Visual Exampl

Leonardo Cardoso 420 Nov 19, 2022
A plug and play ;) android library for displaying a "rate this app" dialog

Easy Rating Dialog This lib provides a simple way to display an alert dialog for rating app. Default conditions to show: User opened the app more than

Fernando Martínez 111 Dec 30, 2022
AudioPlayerView is an Android view that loads audio from an url and have basic playback tools.

AudioPlayerView AudioPlayerView is an Android view that loads audio from an url and have basic playback tools. It makes use of the Android MediaPlayer

Hugo Matilla 86 Nov 29, 2022