Java VS C++ - Android Software Development

Hello everybody,
I'm working on an augmented reality application for Android, so I need to make efficient image processing. For the moment, all my code is written in Java, but computation time is much too high.
Do you think that using C++ code with the NDK could significantly improve the performance ? To give you an example, the first of my computation aims at building an integral image matrix : every pixel of a picture is converted in greyscale and added to two values of the matrix.
Thanks for your help !

I'm not C++ developer, but yeah, I think you could gain huge performance boost. Even if Java would be JITed, even if it would be as fast as native code, C++ have e.g. pointers, which could significantly increase your performance in image processing.

Brut.all said:
I'm not C++ developer, but yeah, I think you could gain huge performance boost. Even if Java would be JITed, even if it would be as fast as native code, C++ have e.g. pointers, which could significantly increase your performance in image processing.
Click to expand...
Click to collapse
im not an android dev(yet) but im am experinced in c++ and java. for raw data computation i would imagine u would get a pretty good speed boost over java. But it couldnt be a straight port of the code you would need to take advantage of what c++ offers over java. BC doing per pixel calculations is going to take a while no matter what way u go about it.

Yes, better !
Just to confirm, after some benchmarks, C++ clearly outperforms Java. A complex java operation which costs in average on the HTC Desire 58 ms is done on the same platform in 14 ms in C++ !
Thanks for your reply.
Caraphcole

Caraphcole said:
Just to confirm, after some benchmarks, C++ clearly outperforms Java. A complex java operation which costs in average on the HTC Desire 58 ms is done on the same platform in 14 ms in C++ !
Thanks for your reply.
Caraphcole
Click to expand...
Click to collapse
As I said, I think you could have much, much bigger boost in some situations. Especially when working with some binary data like images, sounds, etc.

Related

Why Iphone 3G with lower processor can run better games than HTC Hero does?

As I know, IPhone 3G runs on 400 MHz processor (based on: CNet), while HTC Hero runs on 528 MHz processor, but as far as I knows, IPhone games are much more better and run smoothly, while games in Android devices like Raging Thunder 2, Super KO Boxing runs very lag in them. Can someone explain to me why?
Thanks in advance...
Most probably the dedicated/better graphic chip inside the iPhone then htc hero has. Plus, I think iPhone has programming language (C?) which is a bit faster then android's Java.
yes.. maybe to better graphics chip...
but I think... it has to do with ... ability to program to 1 hardware!!!!! NO surprises!
iphone OS is on ... one phone!!!
android is on so many different phones with different features and hardware and limits and powers.
if you are a programmer... looking to develop a new game of yours...
On the iphone, you know exactly what to expect and how to make your game perform to the best it can.
Now, try to imagine developing the same game for android. You have to keep in mind all the different phones..size screens, screen techs, graphic chips, CPUs, memory size, keyboard or no keyboard, trackball, optical ball, Dpad, etc etc etc... this list can drive you crazy!!!! what do you do?? You have to make decision at each turn, what you can program for; what you have to not support.
Dan330 said:
yes.. maybe to better graphics chip...
but I think... it has to do with ... ability to program to 1 hardware!!!!! NO surprises!
iphone OS is on ... one phone!!!
android is on so many different phones with different features and hardware and limits and powers.
if you are a programmer... looking to develop a new game of yours...
On the iphone, you know exactly what to expect and how to make your game perform to the best it can.
Now, try to imagine developing the same game for android. You have to keep in mind all the different phones..size screens, screen techs, graphic chips, CPUs, memory size, keyboard or no keyboard, trackball, optical ball, Dpad, etc etc etc... this list can drive you crazy!!!! what do you do?? You have to make decision at each turn, what you can program for; what you have to not support.
Click to expand...
Click to collapse
Ahhhhh I get it..... It make sense, Thanks for the answer.
There are three reasons:
1) The iPhone CPU has a built-in Floating Point Unit (FPU), whereas the hero CPU doesn't. This means that when doing mathematics involving real numbers with a decimal point (e.g. numbers like 1.23, 3.14159, rather than integer numbers like 1, 73 and 492363), the iPhone is considerably faster, probably by an order of magnitude. 3D games make a lot of use of that kind of mathematics.
2) iPhone programs are compiled to run directly on the iPhone's CPU, whereas Android programs compiled to run on a Java Virtual Machine, which in turn runs on the Hero's CPU. This extra level of indirection means that the programs run maybe 5 - 10 times as slowly as they could if they ran directly on the CPU.
3) The iPhone has a more powerful GPU (Graphics Processing Unit) - this means that it is capable of drawing more things to the screen in one frame than the Hero is.
all android phones dont have much internal storage so limates games
Sent from my aHero using the XDA mobile application powered by Tapatalk
Dan330 said:
yes.. maybe to better graphics chip...
but I think... it has to do with ... ability to program to 1 hardware!!!!! NO surprises!
iphone OS is on ... one phone!!!
android is on so many different phones with different features and hardware and limits and powers.
if you are a programmer... looking to develop a new game of yours...
On the iphone, you know exactly what to expect and how to make your game perform to the best it can.
Now, try to imagine developing the same game for android. You have to keep in mind all the different phones..size screens, screen techs, graphic chips, CPUs, memory size, keyboard or no keyboard, trackball, optical ball, Dpad, etc etc etc... this list can drive you crazy!!!! what do you do?? You have to make decision at each turn, what you can program for; what you have to not support.
Click to expand...
Click to collapse
Java was supposed to be platform independand(spelling) in the beginning... oh well... the wonders of theory vs reality..
Most laggy games are laggy because of bad programming.
This can be observed in things like... 2 games/apps with similar graphics where 1 is not laggy and the other is. I've experienced this quite lot. You can make decent games with Java, especially in 3d, since it just calls "native" OpenGLES functions and doesn't have to do the rendering. If you need an extra boost you can make native libraries and supply them with your app... Of course you lose a bit of platform independence, but it's not a big deal and a mere cross compilation of that library away from porting an app to a new device with different processors.
PlanetTimmy said:
2) iPhone programs are compiled to run directly on the iPhone's CPU, whereas Android programs compiled to run on a Java Virtual Machine, which in turn runs on the Hero's CPU. This extra level of indirection means that the programs run maybe 5 - 10 times as slowly as they could if they ran directly on the CPU.
Click to expand...
Click to collapse
I think that's not the problem behind this. You can write critical code in NDK so you can achieve performance.. There's a lot of videos with motorola droid/milestone games. And they are working great.
http://www.youtube.com/watch?v=mn-XaaQXIxw
http://www.youtube.com/watch?v=GUlsfP38lSM
http://www.youtube.com/results?search_query=quake+3+motorola&aq=f
Motorola Milestone has a powerful GPU (PowerVR) and kicksoff the latest snapdron enabled devices.
qualcomm always delivered poor performance in their soc solutions..
+ qualcom msm7200A lacks FPU ... what a shame... screw you crapcomm and htc (for using cheap hardware, such as soc, display,etc). i'm keep wondering why htc doesn't lunch a true super smartphone with real GPU, high quality touchscreen, etc etc. And what's strange, even if they use cheap hardware their devices are more expensive than from other manufacturers ... hahaha

A Working JIT compiler for the Epic is needed very badly

Hello,
The JIT compiler for the Epic on Froyo is just plain horrible. It is not optimized for the Samsung Epic at all. That is why quadrant scores were so low on 2.2, not because it was biased, but because the hummingbird processor is uable to utilize the JIT Compiler on froyo.If Quadrant really was biased, then how did the epic get the highest quadrant scores for 2.1?
When I had the evo, I was able to play flash videos easily and without low framerates. When I play them on the epic, I get very low framerates compared to the EVO, even when the hardware on the epic is better. I hope that this problem can he fixed soon.
Thanks
Flash videos work fine for me. Quadrant can be purposely inflated through different methods that's why its unreliable.
Sent from my Epic 4g.
ZOMG WITH THE BENCHMARKS!
Snapdragons have a cheat sheet of floating points. We don't...It makes them "LOOK" a lot faster with a benchmark.
Our 2.2 Just came out less than 23 hours ago. Chill dude. JIT for us works, it is just not as large of a boost as it is for other chipsets.
It depends on the benchmark. The Epic does better than the Evo in quadrants and neocore/3d graphic bench marks because the opengl already offers direct access to the phones gpu(hardware). Appearently the NDK allows arm7va opimizations for floating point instructions that the snap dragon obviously excels at ( source from google below). This has been discussed many times and I don't know much about the technicallity of any of it other than what I have read other people type.
Anyways I don't know flash works in android, but one would hope that it would be written with the NDK which allows them to work closer with the hardware. Who knows though adobe isn't known for making flash highly efficient.
The NDK provides:
•A set of tools and build files used to generate native code libraries from C and C++ sources
•A way to embed the corresponding native libraries into an application package file (.apk) that can be deployed on Android devices
•A set of native system headers and libraries that will be supported in all future versions of the Android platform, starting from Android 1.5. Applications that use native activities must be run on Android 2.3 or later.
•Documentation, samples, and tutorials
The latest release of the NDK supports these ARM instruction sets:
•ARMv5TE (including Thumb-1 instructions)
•ARMv7-A (including Thumb-2 and VFPv3-D16 instructions, with optional support for NEON/VFPv3-D32 instructions)
Future releases of the NDK will also support:
•x86 instructions (see CPU-ARCH-ABIS.HTML for more information)
ARMv5TE machine code will run on all ARM-based Android devices. ARMv7-A will run only on devices such as the Verizon Droid or Google Nexus One that have a compatible CPU. The main difference between the two instruction sets is that ARMv7-A supports hardware FPU, Thumb-2, and NEON instructions. You can target either or both of the instruction sets — ARMv5TE is the default, but switching to ARMv7-A is as easy as adding a single line to the application's Application.mk file, without needing to change anything else in the file. You can also build for both architectures at the same time and have everything stored in the final .apk. Complete information is provided in the CPU-ARCH-ABIS.HTML in the NDK package.
^from android.com

NEON optimization in bada

http://developer.bada.com/article/NEON-optimization-in-bada?rlWlfcp=duq&isReturn=Y
NEON can execute arithmetic, MAC, logic, comparison and many others operations.NEON is a powerful thing, which can speed up your bada application from 30% up to 20 times
Click to expand...
Click to collapse
Maybe usefull info.
Best Regards
definitely - it's vector computing. Very nice for crunching lots of data in parallel such as texture matrixes simple logic or math operations and other stuff that can be broken down into small logic blocks for execution - One instruction -> multiple data tuples.
This makes bada dev much more interesting for game developers.

Does linaro make a difference?

I notice some ROMs and kernels use linaro. I have tried them and others. I don't notice a difference in speed or battery. What is the advantage?
Sent from my Nexus 7 using XDA Premium HD app
The kernel sources compile faster. LOL
Hard to imagine that would be important to an end user.
There are probably some corner cases where code that is specifically crafted to take advantage of compiler features will execute more efficiently, but that's not the case when comparing compilation of identical sources by two different compilers.
It does on older phones like when I built Roms for the galaxy exhibit 1ghz one core 512mb ram phone, linaro literally doubled the speed but on the n7 Google has it pretty much fully optimised
Sent from my Nexus 4 @1.72 GHz on Stock 4.2.2
bftb0 said:
The kernel sources compile faster. LOL
Click to expand...
Click to collapse
For many codebases, moving to a newer version of gcc actually slows down the compilation process: http://gcc.gnu.org/ml/gcc/2012-02/msg00134.html
But switching to clang (where possible) sometimes helps.
Most compiler developers are focused heavily on producing optimal (and correct) output; compile time is a secondary consideration. It's relatively easy to write a compiler that runs fast but generates slow/bloated code. Good optimization requires a great deal of computation (and often RAM too).
There are probably some corner cases where code that is specifically crafted to take advantage of compiler features will execute more efficiently, but that's not the case when comparing compilation of identical sources by two different compilers.
Click to expand...
Click to collapse
Each new generation of gcc adds more techniques for optimizing existing code. You can see the effects when a standard benchmark is built by different compilers and run on the same system: http://www.phoronix.com/scan.php?page=article&item=gcc_42_47snapshot&num=3
As you can see, the changes are fairly subtle.
With respect to rebuilding Android using another compiler: you're more likely to notice a difference if your workload is heavily CPU-bound and if your current ROM was built by a much older compiler.
SW686 said:
Each new generation of gcc adds more techniques for optimizing existing code. You can see the effects when a standard benchmark is built by different compilers and run on the same system: http://www.phoronix.com/scan.php?page=article&item=gcc_42_47snapshot&num=3
As you can see, the changes are fairly subtle.
Click to expand...
Click to collapse
Yup. That was precisely my point - subtle to the point that they are only observable via careful benchmarking - but (despite claims to the contrary by enthusiastic folks on the internet) probably not discernible by users in a blind trial comparison without the aid of a stopwatch. Our raw perception of "how long something takes" simply is not accurate at the few-percentage-points level... and that's what the OP stated "I don't notice a difference".
Put another way, if a short one-second task becomes a 950 ms task I won't be able to notice the difference, or if a 60 second task becomes a 57-second task, I won't be able to notice that either (without a stopwatch). Both are 5% improvements.
Which is not to say that folks can't be interested in knowing they have a kernel or tweak that is 2% "better" than everybody else's - but they shouldn't over-sell the perceptibility of the actual gains involved.
I would like to see benchmark measurements of IRX120's claim; I have a hard time believing Samsung left a 100% performance gain "on the table" for a phone which was just released one month ago...
cheers
bftb0 said:
I would like to see benchmark measurements of IRX120's claim; I have a hard time believing Samsung left a 100% performance gain "on the table" for a phone which was just released one month ago...
Click to expand...
Click to collapse
To take a 50% performance hit due to the compiler, they would have to screw up something big, e.g. using a softfp toolchain on hardware that supports hard float[1]. Or accidentally building everything with -O0.
Even then, only the part of the workload using floating point would suffer, and that's nowhere near 100% for most operations. Maybe certain benchmarks.
So, as you said, most users probably wouldn't notice. These devices aren't exactly used for Bitcoin mining or computing Mersenne primes.
Also, ever since Froyo, Dalvik has implemented JIT to optimize hotspots. JIT code is typically generated by the VM, not by the native C compiler. This means that a large percentage of the cycles consumed by an application could be spent on instructions emitted by Dalvik directly, and not from anything originating in gcc.
And of course, applications that perform heavy computation often ship with their own native (binary) libraries. So switching to the Linaro toolchain is unlikely to have much of an impact on games or non-WebView browsers.
[1] http://www.memetic.org/raspbian-benchmarking-armel-vs-armhf/

[Q] What is better to buy

Right now I am experiencing battery issues with my current iphone, as well as getting really bored of it. That is why I wanted to change to android (try out what has been done so far). But then I saw the news about Jolla and considered it as a good choice either (I was using nokia n9 before iphone abd liked MeeGo a lot). The compability layer with android also was a feature making Jolla look as a good alternative. But the processor in Jolla looks a bit old (I don't care a lot about pixels, but performance is important). Also I have lack of understanding, whether the features of os like ART and "project butter", which makes android much smoother, are available for Jolla. I am very much interested in cool features like other halves and alien-dalvik, but can't understand whether the dual-core processor is enough to run android well. At the moment I see two alternatives for myself which are Nexus 5 (benefits: camera, resolution, latest android features, quad-core processor) and Jolla (sailfish OS is a huge benefit itself, disposable battery and the other half concept, the nerdy "linux feel", sd-card). Also the Jolla phone is not yet available in my country officially (they promise to enter Russian market by summer), but I can predict that the price for these two devices won't be significantly different. Can the users please leave comments on Jolla's performance? E.g. in high-quality games or apps which use a lot of processor's resources. I would like an advice on which device to your mind is better.
you are talking about running android on jolla hardware. i assume you mean just apps and not the OS -.-'. Sailfish runs really smooth on Jolla, and Alien-dalvik is plenty efficient to run android apps on this hardware. ofc some demanding games might not run all that well, but who cares, its a phone not a psp. Also android "project butter" just bogged it down and made it worse for me.. the update after that actually made android a lot slimmer. Also they are android OS updates so it doesnt matter for Jolla at all. Jolla runs just the alien dalvik virtual machine to run android apps, not android os.
Also i'm not going to buy android device anytime soon, it's just a crappy google bloated OS, that needs expensive high end hardware to run smoothly.
Whippler said:
Also i'm not going to buy android device anytime soon, it's just a crappy google bloated OS, that needs expensive high end hardware to run smoothly.
Click to expand...
Click to collapse
probably one of the most ignorant post this month on XDA. Congratz !
Android OS>Whippler
Sent from my Nexus 4 using Tapatalk
Relayers said:
probably one of the most ignorant post this month on XDA. Congratz !
Click to expand...
Click to collapse
What?! You must be kidding and if not get some education. Android's use of resources is poor to say the least. It's a virtual machine running on a kernel coded in a different language. Remember when you had a dual core 1.5GHz processor in a PC? You could do everything, everything was fluid. Android launches a virtual Java on Linux and is SLOW. Check out Windows phones. Games work smooth on 2 cores @ 1GHz. On the same hardware on Android these same games can be unplayable.
That's why Google pushes science-fiction hardware in phones. To run at least smooth.
Sent from my LG-P760 using xda app-developers app
Daycrawler said:
What?! You must be kidding and if not get some education. Android's use of resources is poor to say the least. It's a virtual machine running on a kernel coded in a different language. Remember when you had a dual core 1.5GHz processor in a PC? You could do everything, everything was fluid. Android launches a virtual Java on Linux and is SLOW. Check out Windows phones. Games work smooth on 2 cores @ 1GHz. On the same hardware on Android these same games can be unplayable.
That's why Google pushes science-fiction hardware in phones. To run at least smooth.
Sent from my LG-P760 using xda app-developers app
Click to expand...
Click to collapse
Totaly agree with u..
Sent from my LT26ii using xda premium
Daycrawler said:
Android's use of resources is poor to say the least. It's a virtual machine running on a kernel coded in a different language. Remember when you had a dual core 1.5GHz processor in a PC? You could do everything, everything was fluid. Android launches a virtual Java on Linux and is SLOW. Check out Windows phones. Games work smooth on 2 cores @ 1GHz. On the same hardware on Android these same games can be unplayable.
That's why Google pushes science-fiction hardware in phones. To run at least smooth.
Click to expand...
Click to collapse
the advantage of android is that you have the choice (custom roms if manufacturer doesn't update your phone , launchers , zram, install apps to sd or use link2sd ...) the other thing is that i have a galaxy mini 2 (cheap low en 512ram 800mhz) i play most wanted in high quality, gangstar vegas, shadow gun,vice city and you say android is not optimized ? for mini 2 there is even cm11 android 4.4 working smooth eventhough samsung didn't update the phone , and google doesn't push any hardware as it is oems who do it and with kitkat 4.4 android can now run with lower ram than 512 , about sd cards just by anything but nexus
,the architecture of android doesn't make any problem of performance so stop talking about kernel coded with different language as i even played vice city on lg l3 with 380mb of ram and 800mhz , the only recource consuming issue on android is widgets , lockscreen widgets and all the usable freedom but thats what makes it cool , android makes 70% of smartphone population , if it is crap why is it so loved , btw in your pc you dont a have a simple arm architecture which makes pc 1gh mire powerful on a pc , for windows phone it has 2 games on its store .
Sent from my GT-S6500D using XDA Free mobile app
pocthird said:
the advantage of android is that you have the choice (custom roms if manufacturer doesn't update your phone , launchers , zram, install apps to sd or use link2sd ...) the other thing is that i have a galaxy mini 2 (cheap low en 512ram 800mhz) i play most wanted in high quality, gangstar vegas, shadow gun,vice city and you say android is not optimized ? for mini 2 there is even cm11 android 4.4 working smooth eventhough samsung didn't update the phone , and google doesn't push any hardware as it is oems who do it and with kitkat 4.4 android can now run with lower ram than 512 , about sd cards just by anything but nexus
,the architecture of android doesn't make any problem of performance so stop talking about kernel coded with different language as i even played vice city on lg l3 with 380mb of ram and 800mhz , the only recource consuming issue on android is widgets , lockscreen widgets and all the usable freedom but thats what makes it cool , android makes 70% of smartphone population , if it is crap why is it so loved , btw in your pc you dont a have a simple arm architecture which makes pc 1gh mire powerful on a pc , for windows phone it has 2 games on its store .
Sent from my GT-S6500D using XDA Free mobile app
Click to expand...
Click to collapse
because android was long time the only really alternative to ios maybe?
pocthird said:
the advantage of android is that you have the choice
Click to expand...
Click to collapse
That's not the advantage of Android, that's the advantage of open source development model, something that Sailfish OS can also brag about, even more so than Google-driven and Oracle patents encumbered Android.
carepack said:
because android was long time the only really alternative to ios maybe?
Click to expand...
Click to collapse
windows phone existed also , keep in mind also that android is an old project it was just bought by google , android existed before the launch of the first ios device
Sent from my GT-S6500D using XDA Free mobile app
---------- Post added at 06:17 PM ---------- Previous post was at 06:13 PM ----------
MooNWalker said:
That's not the advantage of Android, that's the advantage of open source development model, something that Sailfish OS can also brag about, even more so than Google-driven and Oracle patents encumbered Android.
Click to expand...
Click to collapse
sailfish , firefox os and tizen are rather cool as they are open source and most of them support android apps , but i personally love android ui , and as i told you i could run hd quality games in very low end phones with android i dont know if it will be possible with these other systems , for google bliatware cyanogen doesn't have any google product it's you who flash gapps
Sent from my GT-S6500D using XDA Free mobile app
pocthird said:
sailfish , firefox os and tizen are rather cool as they are open source and most of them support android apps , but i personally love android ui , and as i told you i could run hd quality games in very low end phones with android i dont know if it will be possible with these other systems , for google bliatware cyanogen doesn't have any google product it's you who flash gapps
Click to expand...
Click to collapse
IMHO Sailfish OS has even more cool UI than Android. Unlike Android Sailfish doesn't rely on Java VM or frameworks, using native code instead, and so is less resource hungry than Android. Applications can be written in HTML5/Javascript/QML or in native code, with no Java pieces whatsoever, allowing those "HD quality games" possibly running even smoother (though not by much, considering they're written in NDK on Android as well). As to Google bloatware - yeah, ROMs like CyanogenMod don't have it, but even without it Android is still encumbered by Oracle patents, according to the ruling of the Federal Circuit.
MooNWalker said:
IMHO Sailfish OS has even more cool UI than Android. Unlike Android Sailfish doesn't rely on Java VM or frameworks, using native code instead, and so is less resource hungry than Android. Applications can be written in HTML5/Javascript/QML or in native code, with no Java pieces whatsoever, allowing those "HD quality games" possibly running even smoother (though not by much, considering they're written in NDK on Android as well). As to Google bloatware - yeah, ROMs like CyanogenMod don't have it, but even without it Android is still encumbered by Oracle patents, according to the ruling of the Federal Circuit.
Click to expand...
Click to collapse
i am ceptical , i doubt something better than android might exist , for performance native code doesn't always mean more performance as java version used by android if i am not wrong is java 6 which is optimized , for relying on frameworks it may be difficult to add functionality to the system without that , i'm getting excited for sailfish as it seems very androidish without android negative sides , now we have to know if android apps are running well on sailfish as its more software related because of absence of emulation (arm ) its works like wine on linux i guess
Sent from my GT-S6500D using XDA Free mobile app
pocthird said:
i am ceptical , i doubt something better than android might exist , for performance native code doesn't always mean more performance as java version used by android if i am not wrong is java 6 which is optimized , for relying on frameworks it may be difficult to add functionality to the system without that , i'm getting excited for sailfish as it seems very androidish without android negative sides , now we have to know if android apps are running well on sailfish as its more software related because of absence of emulation (arm ) its works like wine on linux i guess
Click to expand...
Click to collapse
1st, there is always something better, depending on your usage, preferences, resources, etc.
2nd, while native code truly doesn't always mean better performance per se, it does generally mean lower resource consumption (no VM/JIT overhead) and lower latency, regardless of the Java version we're talking about. ART might change that in the future, but for now Sailfish runs smoother on single core 512MiB RAM Nexus One than Android ever had.
3rd, there are plenty other frameworks that are not patent encumbered. Like open source Qt that Jolla Sailfish team chose for their interface.
4th, how do you define "androidish"? As far as I can see it uses different interface navigation methods (much more gesture based and less dependent on specific location of touch), it has different architecture (much closer to "real" desktop Linux distributions), it has different APIs (HTML5/Javascript/QML and native).
5th, Android apps can run not only on ARM because Alien Dalvik doesn't work like Wine (which, BTW, can run not only on Linux). It's a VM, just like the original Android Dalvik. Except that whereas Android overall is just one giant Java stack running in Dalvik on top of Linux kernel, with even UI part being just another Android app, Alien Dalvik has to integrate with existing user space with it's own UI - correct me here someone who knows more about architecture of the Dalvik and/or Alien Dalvik.
MooNWalker said:
1st, there is always something better, depending on your usage, preferences, resources, etc.
2nd, while native code truly doesn't always mean better performance per se, it does generally mean lower resource consumption (no VM/JIT overhead) and lower latency, regardless of the Java version we're talking about. ART might change that in the future, but for now Sailfish runs smoother on single core 512MiB RAM Nexus One than Android ever had.
3rd, there are plenty other frameworks that are not patent encumbered. Like open source Qt that Jolla Sailfish team chose for their interface.
4th, how do you define "androidish"? .
Click to expand...
Click to collapse
androidish means beauty and freedom (plenty of apps also especialy launchers that i hope exist in sailfish) for architecture everybody knows x86 and mips are not well supported by developers there are few apps and games that support them , dont dream of running mobile apps on linux if you dont have an arm machine , emulation is just horiblly slow, correct me if i am wrong but running mer+naemo+vm is very close to android with dalvik vm (recouce consuming)
Sent from my GT-S6500D using XDA Free mobile app
pocthird said:
androidish means beauty and freedom (plenty of apps also especialy launchers that i hope exist in sailfish) for architecture everybody knows x86 and mips are not well supported by developers there are few apps and games that support them , dont dream of running mobile apps on linux if you dont have an arm machine , emulation is just horiblly slow, correct me if i am wrong but running mer+naemo+vm is very close to android with dalvik vm (recouce consuming)
Click to expand...
Click to collapse
It is possible to get even Windows to be beautiful and there are (or were) plenty "launchers" for Windows as well. It is possible to make Windows look like Android (and vice versa). Does that make Windows Mobile "androidish"? I think not.
There are plenty x86-based (Intel Atom) Android devices out there, they are supported, they run mobile apps, they are not ARM, and they don't have to emulate anything, they just need to run a Dalvik VM. One of those machines even has a subforum on XDA - Dell Venue.
MooNWalker said:
It is possible to get even Windows to be beautiful and there are (or were) plenty "launchers" for Windows as well. It is possible to make Windows look like Android (and vice versa). Does that make Windows Mobile "androidish"? I think not.
There are plenty x86-based (Intel Atom) Android devices out there, they are supported, they run mobile apps, they are not ARM, and they don't have to emulate anything, they just need to run a Dalvik VM. One of those machines even has a subforum on XDA - Dell Venue.
Click to expand...
Click to collapse
many apps dont support x86 just look at android x86 problems it has issues with even popular apps like terminal ide or many video editors and games , for windows phone yes it would be relatively androidish if it wasn't closed source
Sent from my GT-S6500D using XDA Free mobile app
pocthird said:
many apps dont support x86 just look at android x86 problems it has issues with even popular apps like terminal ide or many video editors and games
Click to expand...
Click to collapse
Ok, list those apps. And then compare that list with the list of apps that work w/o any issues. Most of the applications will work on x86 without any issues whatsoever thanks to the fact that Dalvik VM allows them to be completely independent of CPU instruction set. The only thing that needs to be dependent on CPU architecture is the underlying Linux kernel (which is already very much cross-platform), some of the system libraries like the Bionic libc, and the Dalvik VM itself (or ART). User apps need to be adapted to x86 separately only if they use NDK instead of traditional Java. I had x86 Android running on my frigging netbook and had no issues other than poor graphics performance and the awkwardness of keyboard and mouse input on a touchscreen-oriented OS.
pocthird said:
for windows phone yes it would be relatively androidish if it wasn't closed source
Click to expand...
Click to collapse
Ah, but that's exactly what I was talking about: Android sure is more free than Windows, but Sailfish is even more free than Android. Android's code is (mostly) open source, but it's still encumbered by Oracle patents. Android's code is not developed solely by one company like Windows, but it is still mostly driven and controlled only by Google. Sailfish on the other hand is not encumbered by Java patents and is largely based on community projects like Mer. Remove the Sailfish's proprietary UI and replace it with Plasma Active or Nemo Mobile instead - and you got fully open system. In fact, the progress of porting Sailfish to other devices depends on progress of adapting Mer to those devices. In case of most common Android devices - adapting it using libhybris.
MooNWalker said:
Ok, list those apps. And then compare that list with the list of apps that work w/o any issues. Most of the applications will work on x86 without any issues whatsoever thanks to the fact that Dalvik VM allows them to be completely independent of CPU instruction set. The only thing that needs to be dependent on CPU architecture is the underlying Linux kernel (which is already very much cross-platform), some of the system libraries like the Bionic libc, and the Dalvik VM itself (or ART). User apps need to be adapted to x86 separately only if they use NDK instead of traditional Java. I had x86 Android running on my frigging netbook and had no issues other than poor graphics performance and the awkwardness of keyboard and mouse input on a touchscreen-oriented OS.
Ah, but that's exactly what I was talking about: Android sure is more free than Windows, but Sailfish is even more free than Android. Android's code is (mostly) open source, but it's still encumbered by Oracle patents. Android's code is not developed solely by one company like Windows, but it is still mostly driven and controlled only by Google. Sailfish on the other hand is not encumbered by Java patents and is largely based on community projects like Mer. Remove the Sailfish's proprietary UI and replace it with Plasma Active or Nemo Mobile instead - and you got fully open system. In fact, the progress of porting Sailfish to other devices depends on progress of adapting Mer to those devices. In case of most common Android devices - adapting it using libhybris.
Click to expand...
Click to collapse
btw will sailfish support root apps ?
Sent from my GT-S6500D using XDA Free mobile app
pocthird said:
btw will sailfish support root apps?
Click to expand...
Click to collapse
Just like any other more "traditional" Linux distro, out of the box.

Categories

Resources