I'm working on creating a CordApp which I'm expecting to run on user's phone. Android as a starting point. From my reading so far, Android phones do not have a JVM running on the phone and the compiled code is converted into either Dalvik or something similar.
Has someone tried to install their CorDapp on an android based mobile device?
I'm a nooby in the area of CordApp as well in android apps but hoping that I can find some good starting tips here. Thanks for help.
The bottom line is that Corda needs a JVM environment to execute. The most light-weight test we have tried is Raspberry Pi with 2G Memory.
(answering the follow-up in the comment above)
You might be able to run several distinct nodes on some server. However at that point there would be little point in using Corda in the first place.
Once you run a node "somewhere else" the user won't own the private key for its node, and all the safety of using Corda disappears. You're reverting to a 'trusted third party' model.
I would like to write an Android app (not a PC program) that has a subset features of Android Device Monitor (ADM), ie. select a process and trace its method calls, with detailed information (all the information that ADM can get, like stack trace and time), while the phone is not connected to any computer nor does it have any network access.
I've searched into android.os.Debug.startMethodTracing*, but it seems can only trace current process and the result can only be written into a file (I need the info in memory).
Digging its implementation, I found dalvik.system.VMDebug.startMethodTracing*, but it seems cannot be used by apps and I didn't find a way to specify pids, neither. Looks like it's calling JNI functions, but I didn't find the implementation.
Maybe I can get the information by lower level way by using Linux perf events (perf_event_open(2)). But before doing that, I would like to know if such kind of feature possible to implement purely in Java (maybe by talking to some "system manager" process or "debugging server" process, or by calling some CLI tools then get its stdout)?
These capabilities can only be accessed by the shell user (the user that adb runs as), or the root user of course. By design, a normal android application cannot access these features, because this would completely break the application sandbox that is the basis of the application security model in Android.
is it possible to create an Android 1.5.1 app using Android Studio?
Yes it is old but still used...
It only has to read 3 different txt files which are located on local network, containing 1 line of text each and display it under each other in portrait view.
Refresh ones a minute should be ok.
And it has to have a dropdown menu so you can choose which number of device it is, so from 1-10 is ok and according that read the txt files which belongs to that device nr.
I can't use a webpage because i cannot create a local server for it. So i need a little app.
To create the txt files i use a windows program.
I use Livecode (since short) but it can't create apps below Android froyo 2.2.
Any help on this would be highly appreciated. As i don't know anything about java.
It's only for local use, nothing commercial or anything
Thanks for any help on this!
You should try using PhoneGap (Cordova) http://phonegap.com which is basically a HTML-Webview, wrapped up in an App, so you can code the whole thing using JavaScript, and it is still a real app.
With this it should be very easy to do that, even if you "don't speak Java".
But to answer your initial question, yes it should be possible to create an Android App for 1.5.1 with Android Studio. You just need to install the right SDK/Packages etc with the SDK Manager.
Have fun coding.
I need to do some menial batch tasks on my phone, and I don't want to jump through all the hoops of making an "app" with a GUI and all that just to do them (the tasks are of the type you'd hack together in BASH in five minutes on a sane system). I can't seem to find any place on the net that explains how to simply make an ordinary program (in any language, but Java is OK if that eases interaction with Android) with access to the Android API that can simply be run by SSHing into the phone and running it as a normal process. No need for an APK package, no need for a GUI, no nothing. This should be the simplest thing in the world, but every example out there seems to be first and foremost concerned with making a GUI and working with Eclipse and the SDK instead of doing the basics first.
Any tips?
(I know this is probably borderline SuperUser, but then again, there's a programming question at the bottom: How do you make an ordinary (Java) program that can be run from the terminal on an Android phone and still use the API?)
Here : Running a shell script on android device using adb
and : https://play.google.com/store/apps/details?id=stericson.busybox&hl=en
and : http://forum.xda-developers.com/showthread.php?t=537827
and : http://strawp.net/archive/recipe-for-a-decent-bash-shell-in-android/
and : http://digitaldumptruck.jotabout.com/?p=938
I can't seem to find any place on the net that explains how to simply make an ordinary program (in any language, but Java is OK if that eases interaction with Android) with access to the Android API that can simply be run by SSHing into the phone and running it as a normal process.
That's because it's not especially important to the bulk of Android users or developers.
How do you make an ordinary (Java) program that can be run from the terminal on an Android phone and still use the API?
You are welcome to use the Scripting Layer for Android to write some scripts, but you have limited access to the Android SDK, and they cannot "simply be run by SSHing into the phone". This is supported by the SL4A team.
You are welcome to experiment with the dalvikvm command, though off the top of my head I do not recall whether or not it is available on production devices, and I do not know if it can "simply be run by SSHing into the phone". And, bear in mind that using this is completely unsupported.
You are welcome to write your own C/C++ code for ARM (or whatever CPU architecture your device runs). This "simply be run by SSHing into the phone" but has no access to the Android SDK.
I still cannot believe that that kind of stuff isn't on the first page of every Android development introduction out there.
There are over 200 million users of Android devices. What percentage of those users do you think want to
"make an ordinary program... with access to the Android API that can simply be run by SSHing into the phone and running it as a normal process"? 0.01%? 0.001%? My money is on 0.0001%.
The "first page of every Android development introduction out there" should be focused on stuff that matters to closer to 100% of the user base. You, of course, are welcome to build up your own site focused on this sort of thing, to cater to those users who are interested in creating these sorts of programs.
From http://git-annex.branchable.com/design/assistant/blog/day_184__just_wanna_run_something/:
While I already have Android "hello world" executables to try, I have
not yet been able to run them. Can't seem to find a directory I can
write to on the Asus Transformer, with a filesystem that supports the
+x bit. Do you really have to root Android just to run simple binaries? I'm crying inside.
It seems that the blessed Android NDK way would involve making a Java
app, that pulls in a shared library that contains the native code. For
haskell, the library will need to contain a C shim that, probably,
calls an entry point to the Haskell runtime system. Once running, it
can use the FFI to communicate back to the Java side, probably. The
good news is that CJ van den Berg, who already saved my bacon once by
developing ghc-android, tells me he's hard at work on that very thing.
and some specific advices in the comments below:
See http://kevinboone.net/android_nonroot.html for info on where in
the android filesystem you have write, exec ability.
Basically you have these abilities in /data/local from adb shell (and
in debuggable app's folders using run-as with adb shell), and in
/data/data// for each app (for example the terminal emulator's
data dir when using the terminal emulator).
...
http://git-annex.branchable.com/design/assistant/blog/day_185__android_liftoff/:
Thanks to hhm, who pointed me at KBOX, I have verified that I can
build haskell programs that work on Android.
http://kevinboone.net/kbox.html:
KBOX [...] gives you the terminal emulator, a
decent set of Linux utilities (supplied by busybox), ssh and rsync
clients and servers, and a few other things. In addition, there are a
number of add-on packages for expanded functionality.
Well, it's just about running an executable on Android, and not about writing an executable that would access Android API...
I can't seem to find any place on the net that explains how to simply make an ordinary program [...] with access to the Android API that can simply be run by SSHing into the phone and running it as a normal process.
An answer, translated from a note by vitus-wagner:
Termux is an advanced terminal emulator plus lots of Unix-like software with command-line interface (in packages managed by APT). Actually, not only CLI (command-line), but also GUI as well (though the GUI software not tried yet).
Unlike the way of the various popular "linux deploy" (which make something like a container, at least a chroot, with things installed into directories according to the traditional filesystem hierarchy), Termux seems to aim at integrating into the host system. For this purpose, it has a plugin, Termux:api which is able to do a lot of interaction with the system: open a file in a native Android app, send an sms, take a picture with the camera, or even say something by means of the system TTS engine.
There are many more addons -- see wiki.
(A side note. An integration like that could be expected--if not from MSYS--from GnuWin32, but there is nothing close to Termux under Windows w.r.t. the degree of integration.
However, for some strange reason, people are asking much more about how to make it more "Linux-like" on the forum, rather than how to use it effectively to solve smartphone-specific tasks...)
A toolkit for cross-compilation is available, so that one can try to package his favorite software.
Actually, it is able to do compilation locally on the device, but it seems not to be able to make a package locally.
Some things to know:
One needs Hacker's keyboard or something similar. One can't live here without Esc, Tab, Control. Or one could try to learn the Touch Keyboard.
vim ran with an encoding different from utf-8, and the Russian letters were displayed incorrectly. So, set encoding=utf-8 had to be written in .vimrc.
ssh to another computer at home couldn't login. The reason was simple: it used the username u0_a95 instead of one's usual username. (One can write User your_username in .ssh/config to permanently "fix" it.)
I'd recommend doing a research on XDA-Developers board
Context:
I have an windows desktop app(c#) which loads the dokan libraries , creates a new file system/drive each time it runs, and then deploys financial data files & copywrite protected files in the newly created drive - Allowing only limited process (declared by me) to have access to these files in newly created file system(using dokan).
Now we are migrating the same C# code to android. Though the code doesn’t give Errors, (while running apk)the new drive is not created. While i could debug only to an extent (suddenly get out of debugging mode)
Assumptions for the issue:
Permission issues:
Question:
Does Dokan work with Android? How to go about this, if it’s a permission issue? In market place, most of the devices installing my app may not be "rooted"!!
Has anyone implemented new file system/drive using DokanNet on Android/Monodroid and faced with similar issues? Solutions???
When using a tool it's a good idea to have some basic understanding of how it works. Dokan works by installing Windows filesystem driver. On Android there's no concept of drives and mounting anything to the filesystem is not possible (without building custom kernel and installing it on device). Consequently your idea is DOA on Android and you need to look for other ways to deal with your data.