i was following the Performance Tips through the developer site.
There mentions about android devices that don't have a JIT. But i searched for jit-less devices but could not find a broad list.
There are also huge differences between devices with and without a JIT: the best code for a device with a JIT is not always the best code for a device without.
or
On devices without a JIT, it is true that invoking methods via a variable with an exact type rather than an interface is slightly more efficient
Question is which devices dont have JIT, which devices have? And What is the optimal thinking while programming targeting mostly jit devices or it is not important?
Based on this article, JIT was added to the Dalvik VM in Android 2.2 (Froyo). This means Cupcake (1.5), Doughnut (1.6) and Eclair (2.1) don't have it. The Android Dashboard tells me that there are less than 2% of devices still in the wild without JIT.
Personally, I would not spend a minute thinking about devices without JIT; for one, those older devices would have smaller screens and fewer resources anyway, and aren't the target for my apps.
from command prompt go to android sdk platforrm-tools. From there
adb shell
dalvikvm -h
There at the bottom of the line there will be written Configured with: ..... jit.........
Related
I want to port a custom kernel which works on android 11 to android 12.
https://github.com/morogoku/MoRoKernel-S7
This is the kernel i want to port
I need some help regarding how to start or what to do.
https://github.com/8890q/android_kernel_samsung_universal8890
This is the android 12 kernel
The Android 11 kernel does boot on android 12 but some features like bluetooth doesnt work so i figured there shouldnt be much to change.
I want to make it work on android 12
This might not be the best solution to your problem but I would go about it this way, but backporting stuff seems the way to go, since IMHO I don't think there is a direct solution.
See the changes in kernel/common from AOSP for Android 12 and try to port the patches required. But since your kernel is 3.18, I am not sure it can directly go for A12/A13, backporting things are a huge effort.
You should take a look at the kernel changes what communities like LineageOS or Paranoid Android do to support older devices with 3.18.x kernel to run on Android 12 and higher.
Take reference from similar devices from #2 for all subsystems and drivers required.
For vendor specific modules like bluetooth support, try to see if you have any support from #3. In many cases it might be as easy as applying certain commits or it might be as difficult as getting a full port done.
Is Way To Run Machine Code Instead Android OS In Android Devices ?
I Want Remove Android Os And Work With Cpu And Other Devices Directly .
What Compiler I Can Use ?
MASM is an x86 assembler, so it would not be suitable for most Android devices as the vast majority use ARM-based processors.
That said, Android phones are computers just like any other and can be programmed in assembly. The first thing you'll need to do is select a device running a well documented CPU and chipset.
Since you'll be removing Android and plan on programming in assembly you'll need to write your own routines for nearly everything. An understanding of the CPU, power management and some form of I/O (you can avoid having to write complex display code if you plan to interface with the phone through serial communication, for example).
Unfortunately, much of the information required for successfully writing your own OS for an Android device is unavailable so you'll need some hardware analysis tools to assist in reverse engineering some of this information. A logic analyzer may be useful in sniffing some of the protocols used between chips, although much of modern phones is done on a single SoC, so you'll need to experiment heavily and compile information from a wide variety of online sources.
Aside from that, it's smooth sailing. Programming an OS in assembly for Android is pretty much the same as programming an OS in assembly for any other computer and you'll find it to be rather familiar territory.
So far I have been developing directly on my galaxy nexus and nexus 7 using the amazing AID app.
However, as the N7 can't provide logs due to it being jelly bean, i feel the need to get a mini notebook in order to utilise adb logcat.
My main worry is that something with only 1gb (2gb if i upgrade, which i will) and a 1.5-1.83GHz atom CPU won't be powerful enough.
I can possibly get around certain worries by not using emulators and testing directly on my two devices, so that will save me a great deal. Also I am tempted to just use vim and command line tools instead of eclipse which again might save me from a slow PC.
What do you guys think? Is the notebook way under powered? What if i just use vim and no emulators?
Side note, does anyone actually code in vim/command line?
something with only 1gb (2gb if i upgrade, which i will) and a 1.5-1.83GHz atom CPU
will work just fine, as long as you're not planning to run a tablet emulator. I sometimes have to work at my Asus EEEPC with the same exact CPU and I've got no problems so far
It is doable with 1gb RAM and using vim/commandline tools. However, eclipse provides a project wide perspective which is hard to duplicate in vim (vim power users may be as productive, if not more though). So in terms of memory 1, 2gb RAM will be fine. Testing on devices is always better than emulators.
One thing else though, a commandline build with multiple module dependency is non-trivial to setup and maintain. This is because Google has historically been modifying the build.xml file, breaking existing build scripts fairly regularly. So if you are well versed with build script internals and prepared to work on them you should be ok.
Debugging Android apps without Eclipse based breakpoint debugging support may be a significant issue too. Some bugs are caught in a lot lesser time with this. So plan accordingly if you don't want to use Eclipse.
Eclipse also provides very good JUnit/Robotium support for writing test cases, You won't get this with vim.
As I wrote down these points I think running Eclipse in 2gb notebook should be possible (just don't run other apps with doing development) and thus is recommended.
I have extensively used vim just not for Android development. You can also install vim plugin for eclipse if you prefer that.
Modern notebook hardware certainly is capable for software development; in fact, many (hobbyists as well as professionals) use a notebook as their main development platform.
However, with a mini / ultra-small form factor, you'll pay more for a less capable machine. Unless you need extreme mobility, I would suggest a standard notebook, with a little extra money spent on RAM (8+ GB) and an SSD. (Then, neither big IDEs nor emulation is out of scope.) If money is an issue, you can still get clunky-looking, but fairly powerful 15" or 17" laptops.
i think you Configuration is good enought to run Eclipse , Myself i had to Remove some Composant on my PC beacause we have 1 PC for Work/Internet/Eclipse and 1 PC for Gaming Etc ... , iam using Galaxy S2 and dont use Emulator many times , Yes i have some Slow Down some Time , but try Eclipse with the Minimal Configuration and No Emulators but Upgrade to 2 GB i have myself 2 GB Here and DUal Core E5200
Yeah that's under powered. For a windows PC I'd want 4gb of ram, not sure about Linux but atoms are dog slow either way.
I'm sure it'll work but it won't be fun, I'd be most worried about disk speed as that's what drives me nuts most.
I'd also take advantage of the ide and all its nice features too
I have a Xoom tablet and it would be great if I could run statistical analysis using R on it. As far as I know it is not possible to use R on iPad due to license problems (GPl x iTunes etc.) and a lack of compiler for Fortran in the Apple tablet.
But what about tablets using android? Arguably, the GPL issue is not a problem, so any help here on how to use R on my tablet?
I used Linux Installer from http://android.galoula.com/en/LinuxInstall/ (my Dezire Z was rooted beforehand), installed stable debian and R! on this Linux install. I`m not a Linux-geek and total time for installation (first time loop file size was insufficient, and I repeated the whole process) wass less than hour however.
(source: gyazo.com)
At some point, smartphones and tablets will have browsers capable enough to run RStudio in its server mode via the browser. Currently, the latter demands too much in terms of newer GWT, Javascricpt, ... magic that it remains limited to (recent enough) desktop browsers; see here for a bit more on this.
You can always ssh out though. Connectbot is a capable ssh client for Android, and of course free. No graphs though.
The Android SDK offers developers the facility to program in Java, ... not C or Fortran, which are the languages in which R is written. Although some have said that hacking the Android tablets voids their warranty and prevents upgrades, Motorola only requires that the device be relocked before doing upgrades. For this question I think it still boils down to "if you have to ask the question, then you cannot do it".
EDIT: But somebody else will probably try it.
(I haven't found gcc for the Android.)
I am new to android technology. Can somebody answer few of my question:
What are the similarities and differences between linux kernel and android kernel?
What is the minimum hardware requirement for mobile device to have android support?
Whether it is required to have a touch-screen mobile to run android technology?
Q1. The Android kernel is the Linux kernel with added device drivers for the hardware components that are not supported by the pure Linux kernel. However, there are also other differences. Quoted from here, and here:
The Android kernel code is more than
just the few weird drivers that were
in the
drivers/staging/androidsubdirectory in
the kernel. In order to get a working
Android system, you need the new lock
type they have created, as well as
hooks in the core system for their
security model. In order to write a
driver for hardware to work on
Android, you need to properly
integrate into this new lock, as well
as sometimes the bizarre security
model. Oh, and then there's the
totally-different framebuffer driver
infrastructure as well.
You may also refer to this page for an opinion on this matter.
Q2. You may take a look at the Android 2.3 Compatibility Definition
(I haven't read it). For 3.0 the requirements are (quoted from here):
1GHZ processor, 512MB RAM, a display
screen that is at least 3.5-inches in
size
Q3. No, your device does not need to have a touchscreen to be compatible with Android. Refer to the compatibility guide above, but this is also evidenced by the first Android testing devices, that were running android (picture).