DroidScript wiki

(was AndroidScript) unofficial documentation by the community

User Tools

Site Tools


Privacy Policy


Version1.42 is out since December 2nd 2016

Frequently Asked Questions


Note for contributors

If you wish to create a new page in the DroidScript wiki, please click on the most appropriate namespace above and follow the notes for contributors there.

Because of spam, it has been necessary to add a CAPTCHA to the registration form and the save option for editing pages. You will not need to prove you are human if you are logged in, so please register.

Please feel free to improve any existing page, as well as adding new pages to increase the sum of public knowledge about DroidScript.

Formatting Syntax


This is an old revision of the document!

Backup your apps

Following a reminder from Dave on the discussion group that we should be backing up our apps regularly, I thought I would post a simple way of sending yourself an email archive of your DroidScript folder.

The following code is intended as a guide to one way you can keep a snapshot of your code at any given time.

If you wish, you can save the mail as a draft, rather than sending it.

//var mygmail = "my.own.address@gmail.com";
var mygmail = app.GetUser();
//Called when application is started.
function OnStart()
    //Create a layout with objects vertically centered.
    lay = app.CreateLayout( "linear", "FillXY" );    
    //Create a text label and add it to layout.
    txt = app.CreateText( "..." );
    lay.AddChild( txt );
    //Add layout to app.    
    app.AddLayout( lay );
    var fname = CreateArchive();
    yesNo = app.CreateYesNoDialog( "Send by mail?" ); 
    yesNo.fname = fname;
    yesNo.SetOnTouch( yesNoMail_OnTouch );
//Create a backup archive.
function CreateArchive( )
    var archfolder = "/sdcard/sjgapps/archive/"; 
    //Create project zip file.
    var zip = app.CreateZipUtil();
    var fldr = "/sdcard/DroidScript";
    var archname = (new Date).toISOString().slice(0,19 );
    archname = "ds"+archname.replace(/[-:]/g,"");
    archname =  archname.replace(/T/,"_");
    var file = archfolder+archname+".zip";
    zip.Create( file );
    app.ShowProgress( "Archiving..." );
    AddFolder( zip, "DroidScript", fldr );
    return file;
//Recursively add folder contents to zip.
function AddFolder( zip, name, fldr )
    var list = app.ListFolder( fldr,"",0,"alphasort" );
    for( var i=0; i<list.length; i++ )
        var title = list[i];
        if( !app.IsFolder( fldr+"/"+title ) )
            zip.AddFile( name+"/"+title, fldr+"/"+title );
            AddFolder( zip, name+"/"+title, fldr+"/"+title );
//Handle 'send by mail?' dialog. 
function yesNoMail_OnTouch( result ) 
    if( result=="Yes" ) 
        var fname = yesNo.fname;
        app.SendMail( mygmail, fname, "DroidScript backup attached", fname );


Personalise the code

You must change the email address in the first line

Version required

This code makes the assumption that you are using at least version 1.15 of DroidScript, as the path for your apps is hard coded but older versions used a different path

Filling your sdcard

There is no code included to delete the zip files.

Over time, /sdcard/sjgapps/archive will build up all the archives you create.

You should probably delete those files manually from time to time, probably after emailing them or placing them in your cloud storage.

sample_code/backup_apps.1447440011.txt.gz · Last modified: 2015/11/13 18:40 (external edit)