EditQuestion 2

Just wondering, I was following the steps you outlined in your Perl Client on Android page and tried running the android_launcher.pl script but the editor window opens up the script with no launch. I'm pressing the "right turn" arrow to Run the script. Is that correct ? Also, it looks like the sl4a folder was installed on my sdcard. Is that where it's supposed to go ? Also, when I press the terminal button on the menu, all I get is a black screen and I can't type anything. My phone is rooted and I've been looking to use Perl on my phone, luv your work.

Keep it up, YOU GUYS ROCK !!

-- colstelhml 2015-10-11 15:05 UTC

Comments:

Hi! Sorry for the late answer.

Indeed, it seems like SL4A is not working on android 5+. In fact, SL4A is abandoned for almost 4 years, just look at the activity graph on GitHub. There are some forks but none of them is active enough.

Basically, I was hoping that perldroid project will come alive, but now it seems like it is not going to happen.

When ProgArm project was starting, there was a quick (really dirty) prototype client written in Python. But later I decided that things will go more smoothly with Perl (CPAN was one of the reasons to switch). Anyway, neither Python or Perl don't work well enough on Android.

Perl v5.20 has Android support, which means that there shouldn't be any problems with compiling. However, if you want to put it in an application you still have to write some code in Java (or any other language supported by java machine). So in the end we have two options:

  • Write a separate android-oriented client in Java. However, it would not work nicely on other platforms, which means that any effort will be doubled since we will have to support two clients at the same time. This is a real problem. ProgArm has a decent hardware (a lot of effort was put into that), but software is pretty much not done due to the lack of development power (it's just 1 software developer!).
  • Embed Perl client into an Android application, write a thin layer in java so that Perl client can communicate with the phone (e.g. run some actions). That's what we should do, I think.

But in the end, Android is a real pain to work with. It all starts with the lack of decent support for a broad range of languages, but OK, even if you choose Java, then what? Still you cannot accept a goddamn call meaningfully… And it's full of such limitations and half-broken workarounds for them.

Regarding programming languages, Perl6 is coming this Christmas. JVM support is not promised, but it will be done sooner or later. I have no idea how soon we will be able to run Perl6 apps on Android though (if ever), but it seems like porting the client to Perl6 is a good idea in the long run (but the code base is really small anyway, so feel free to start Java thing from scratch!).

But that's not the only thing that is making our development pace slower. In ProgArm 0.3 we decided to use a chip that has Bluetooth LE (only!). That is, you cannot use it if your phone has Bluetooth v2.1 (still you can connect HC-05 and use that instead, that's what I do…). The idea was (and still is) that all new phones are manufactured with Bluetooth 4.0+ built in, so there shouldn't be any problems. In reality, it is still hard to find a cheap (used) phone that would support Bluetooth LE, and personally I'm not willing to spend much for a phone that I'm not going to use anyway (I'm using Nokia N900. Although it is old, still it has a full-blown GNU/Linux operating system). Again, it's a good decision in the long run, but it definitely does not help us right now.

Finally, although there is not much activity on this project we are still working on Free/Open-Source hardware designs! :)
The project we are working on right now is associated with robotic vacuum cleaners. We will setup the website really soon.

If you have any interest in ProgArm, please ask us anything! We will try to help you as much as we can. If you want to contribute any code then I can give you full admin access to everything.

-- AlexDaniel 2015-10-30 00:18 UTC



To save this page you must answer this question:

Type "ProgArm" here: