Android - An Open Handset Alliance Project

What Android - An Open Handset Alliance Project
Where https://source.android.com/
Description Android is a software stack for mobile devices that includes an operating system, middleware and key applications.

See Also

Android SDK
The official software development kit for Android.

Description

This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language: [L1 ]

Features

  • Application framework enabling reuse and replacement of components
  • Dalvik virtual machine optimized for mobile devices
  • Integrated browser based on the open source WebKit engine
  • Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)
  • SQLite for structured data storage
  • Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • GSM Telephony (hardware dependent)
  • Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
  • Camera, GPS, compass, and accelerometer (hardware dependent)
  • Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE

Another opportunity for Tcl/Tk to gain visibility in a cutting edge environment, if enthusiasts are inclined to develop applications for this platform.


RS 2008-05-29: Here is, from [L2 ], a hello world example in Android environment (and Java):

 package com.android.hello;

 import android.app.Activity;
 import android.os.Bundle;
 import android.widget.TextView;

 public class HelloAndroid extends Activity {
   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle icicle) {
       super.onCreate(icicle);
       TextView tv = new TextView(this);
       tv.setText("Hello, Android");
       setContentView(tv);
   }
 }

Oh that overengineering, compared to

 pack [label .tv -text "Hello, Tk Android"]

But seriously, has any of the Jacl (or Hecl) crowdlet considered to bring Tcl/Tk to Android in the Jacl way?

TP David Welton and the Hecl developers have Hecl running on Android. See [L3 ] and [L4 ]


Tcl and the Android Scripting Environment

PT: Android when running on a phone does not permit general installation of binaries. The only significant writable filesystem is the sdcard but that is mounted with a non-exec flag to prevent anything running from the card. This means you need to install applications using the system installer which has permission to create files and directories on the data filesystem. The Android Scripting Environment is a project which provides a java shim to get compiled scripting languages installed onto the phone from where they can run script files from the sdcard. It comes with Python, Lua and some others.

http://wfr.tcl.tk/fichiers/images/tclandroidPT.jpg

I have created a Tcl interpreter package for ASE and it is currently hosted at http://www.patthoyts.tk/tclkit/android-arm This is a modified version of the ASE project to add Tcl support. You need to install the APK file and then copy the three zip files to the root of your sdcard and have ASE install the Tcl8.6b2 interpreter. This includes support for using the JSON interface to the Android interface so the various examples posted for other languages are readily translated into Tcl. See the scripts package but a sample is:

  package require android
  set android [android new]
  $android vibrate
  $android getInput "Hello!" "Type something in..."
  $android webSearch "android scripting with tcl"

In the longer term it is probably more sensible to use something with better Java integration. Either Hecl or Jacl would seem good candidates. Hecl is not-quite-tcl and Jacl needs some updating. When I tested a threaded build and tried to create a thread in Tcl the executable aborted so I suspect we cannot make use of tclblend which says it requires threads.

Note that Hecl already has support for Android (see above).


SL4A Supports Tcl

escargo 2010-08-20 - Quoting from this link ([L5 ]):

"Scripting Layer for Android (SL4A, formerly known as Android Scripting Environment or ASE) 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, in the background, or via Locale. Python, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl, and shell are currently supported, and we're planning to add more."


No Sl4A do not support Tcl

Rildo Pragana 2010-09-22 - Unfortunately, Tcl used to work in the older ASE Android Scripting, but was removed and it is not supported anymore. It is a shame we dont' participate in the fastest growing mobile platform in the world. I suggest the author(s) of the previous interface, release the source code for the android_scripting interface, so someone else could update the code for the new version (see this message [L6 ]). I have a Motorola Milestone phone and I'd like to program it in Tcl, as I do with Python, Ruby and Lua (of course, Tcl is better!).


LV Note that this product is different from an earlier product, Android, which is a GUI testing system.

Check out [L7 ] this slide which talks about Google making Android scripting [L8 ] available within the smart phone itself...


RS 2013-11-07 Roy Keene offers freshly built Tclkits (8.6.1, no Tk) for Android and other platforms on his download site http://www.rkeene.org/devel/kitcreator/kitbuild/nightly/ . One can run it in the "Terminal IDE" environment interactively.

AndroWish provides Tcl and Tk 8.6.1, over an X11 emulation via SDL. See AndroWish and AndroWish: Devices for the details.


tk-logcat-viewer : A small tcl/tk program that allows for viewing, searching, and filtering logging data from an Android device by interacting with adb.

https://raw.githubusercontent.com/thinkingcow/tk-logcat-viewer/master/documentation/screenshot1.png