Explanation of the new Android RunTime (ART) - Motorola Droid RAZR

Looking through the forums on this and other devices with 4.4+ ROMs, the question always comes up, what is ART? Well I happened to run across this explanation. This should clarify it to even the noobist of flashers out there, so I felt it should be shared. Hope this helps everyone understand what it is and why not all apps are compatible just yet. (credit to XDA member @bippi79 for the great writeup!)
"A quick little post for something we have been working on lately.
Quite a few of you people would have heard about Android Kitkat and the bag of goodies that it brings along with it. One of those important changes though, is very much under the hood. It is called ART or Android Runtime. So what is it, and why is it important to us?
As described by Google, ART is a new Android runtime being introduced experimentally in the 4.4 release. This is a preview of work in progress in KitKat that can be turned on in Settings > developer options. Before this, all these days, every Android application used to run in its own process, with its own instance of the Dalvik virtual machine. Dalvik has been written so that a device can run multiple VMs efficiently. The Dalvik VM executed files in the Dalvik Executable (.dex) format which is optimized for minimal memory footprint. Now, with Android 4.4, Google has revealed that the Dalvik replacement, called Android Runtime (ART), should improve the performance of Android apps by a huge margin. The early version of ART in Android 4.4 already has been reported to have sped up apps by around 100%, though it is too early to know the whole truth. It might as well be a placebo till then.
ART straddles an interesting mid-ground between compiled and interpreted code, called ahead-of-time (AOT) compilation. Currently with Android apps, they are interpreted at runtime every time you open them up. This is slow. (iOS apps, by comparison, are compiled in native code, which is much faster.) With ART enabled, each Android app is compiled to native code when you install it. Then, when it’s time to run the app, it performs with all the speed and responsiveness of a native app.
Now, a lot of developers as well as enthusiasts will be really interested in this thing. It allows Android developers to continue writing the exact same code, and having their apps work across a wide range of hardware specs and form factors — but now their apps will now run significantly faster, feel more responsive, and your device’s battery life should improve.
And this is where our new website, www.androidruntime.com comes in. Right now, in these initial stages, people are still confused as to which apps can run in ART and which cannot. Our website solves this tiny issue by letting you search for any app, and see if ART supports it or not. Missing an app but you know the answer to the question? You can even contribute and add to the supported app list. We will do a quick verification and update the search results.
Now the website is still in its infancy, but we are sure that a lot of people might be interested in it. So spread the word and do what you guys really do best.
Oh, and have a great weekend!"
Sent from my XT912 using XDA Premium 4 mobile app

5444482
Great article!! As our device evolve, so should supporting framework!! Most of us rely on our devices (is it just a "phone" anymore?), for social interactivity, so speed, responsiveness, and abilities, improved by ART, will be a boon. Time to "Let sleeping Dalvik lie"!!

Thanks for the article. Very helpful.

Thx for the great article

Thanks for this great article... It ws very useful...

898846487b
Good write up

Thanks for the article on ART very helpful!

Related

Android insights: HW Acceleration, performance, Lags

Hi @all,
yesterday i posted a nice article about how HW Acceleration is done since honeycomb (and the difference before).
I think its a good idea to post here nice and interesting articles - this can help the devs here but the users to why
sometimes its simply impossible to code things or fix things.
Please dont spam this thread, even its in general section - let users read interesting things instead of pages full of ****
"The Reason Android is Laggy"
Dianne starts off her post with a surprising revelation:
“Looking at drawing inside of a window, you don’t necessarily need to do this in hardware to achieve full 60fps rendering.
This depends very much on the number of pixels in your display and the speed of your CPU. For example, Nexus S has no
trouble doing 60fps rendering of all the normal stuff you see in the Android UI like scrolling lists on its 800x480 screen.”
Hun? How can this be the case? Anybody who’s used a Nexus S knows it slows down in all but the simplest of ListViews.
And forget any semblance of decent performance if a background task is occurring, like installing an app or updating the
UI from disk. On the other hand, iOS is 100% smooth even when installing apps. But we know Dianne isn’t lying about the
potential CPU performance, so what’s going on?
The Root Cause
It’s not GC pauses. It’s not because Android runs bytecode and iOS runs native code. It’s because on iOS all UI rendering
occurs in a dedicated UI thread with real-time priority. On the other hand, Android follows the traditional PC model of rendering
occurring on the main thread with normal priority.
This is a not an abstract or academic difference. You can see it for yourself. Grab your closest iPad or iPhone and open Safari.
Start loading a complex web page like Facebook. Half way through loading, put your finger on the screen and move it around.
All rendering instantly stops. The website will literally never load until you remove your finger. This is because the UI thread is
intercepting all events and rendering the UI at real-time priority.
If you repeat this exercise on Android, you’ll notice that the browser will attempt to both animate the page and render the HTML,
and do an ‘ok’ job at both. On Android, this a case where an efficient dual core processor really helps, which is why the Galaxy
S II is famous for its smoothness.
On iOS when an app is installing from the app store and you put your finger on the screen, the installation instantly pauses until
all rendering is finished. Android tries to do both at the same priority, so the frame rate suffers. Once you notice this happening,
you’ll see it everywhere on an Android phone. Why is scrolling in the Movies app slow? Because movie cover thumbnails are
dynamically added to the movie list as you scroll down, while on iOS they are lazily added after all scrolling stops.
Other Reasons
The fundamental reason Android is laggy is UI rendering threading and priority, but it’s not the only reason. First, hardware
acceleration, despite Dianna’s reservations, does help. My Nexus S has never been snappier since upgrading to ICS. Hardware
acceleration makes a huge difference in apps like the home screen and Android market. Offloading rendering to the GPU also
increases battery life, because GPUs are fixed-function hardware, so they operate at a lower power envelope.
Second, contrary to what I claimed earlier, garbage collection is still a problem, even with the work on concurrent GC in Dalvik.
For example, if you’ve ever used the photo gallery app in Honeycomb or ICS you may wonder why the frame rate is low. It turns
out the frame rate is capped at 30 FPS because without the cap, swiping through photos proceeds at 60 FPS most of the time,
but occasionally a GC pause causes a noticeable “hiccup”. Capping the frame rate at 30 fixes the hiccup problem at the expense
of buttery smooth animations at all times.
Third, there are the hardware problems that Dianne discussed. The Tegra 2, despite Nvidia’s grandiose marketing claims, is hurt
by low memory bandwidth and no NEON instruction set support (NEON instructions are the ARM equivalent of Intel’s SSE, which
allow for faster matrix math on CPUs). Honeycomb tablets would be better off with a different GPU, even if it was theoretically
less powerful in some respects than the Tegra 2. For example, the Samsung Hummingbird in the Nexus S or Apple A4. It’s telling
that the fastest released Honeycomb tablet, the Galaxy Tab 7.7, is running the Exynos CPU from the Galaxy S II.
Fourth, Android has a ways to go toward more efficient UI compositing. On iOS, each UI view is rendered separately and stored
in memory, so many animations only require the GPU to recomposite UI views. GPUs are extremely good at this. Unfortunately, on
Android, the UI hierarchy is flattened before rendering, so animations require every animating section of the screen to be redrawn.
Fifth, the Dalvik VM is not as mature as a desktop class JVM. Java is notorious for terrible GUI performance on desktop. However,
many of the issues don’t carry over to the Dalvik implementation. Swing was terrible because it was a cross platform layer on top
of native APIs. It is interesting to note that Windows Phone 7’s core UI is built in native code, even though the original plan was to
base it entirely on Silverlight. Microsoft ultimately decided that to get the kind of UI performance required, the code would have to
be native. It’s easy to see the difference between native and bytecode on Windows Phone 7, because third party apps are written
in Silverlight and have inferior performance (NoDo and Mango have alleviated this problem and the Silverlight UIs are generally very
smooth now).
Thankfully, each of the five issues listed above is solvable without radical changes to Android. Hardware acceleration will be on all
Android phones running ICS, Dalvik continues to improve GC efficiency, the Tegra 2 is finally obsolete, there are existing workarounds
for the UI compositing problems, and Dalvik becomes a faster VM with every release. I recently asked +Jason Kincaid of +TechCrunch
if his Galaxy Nexus was smooth, and he had this to say:
“In general I've found ICS on the Galaxy Nexus to be quite smooth. There are occasional stutters — the one place where I can
consistently get jitters on the Galaxy Nexus is when I hit the multitasking button, where it often will pause for a quarter second.
That said, I find that the iPhone 4S also jitters more than I had expected, especially when I go to access the systemwide search
(where you swipe left from the home screen).”
So there you go, the Android lag problem is mostly solved, right? Not so fast.
Going Forward
Android UI will never be completely smooth because of the design constraints I discussed at the beginning:
- UI rendering occurs on the main thread of an app
- UI rendering has normal priority
Even with a Galaxy Nexus, or the quad-core EeePad Transformer Prime, there is no way to guarantee a smooth frame rate if these
two design constraints remain true. It’s telling that it takes the power of a Galaxy Nexus to approach the smoothness of a three year
old iPhone. So why did the Android team design the rendering framework like this?
Work on Android started before the release of the iPhone, and at the time Android was designed to be a competitor to the Blackberry.
The original Android prototype wasn’t a touch screen device. Android’s rendering trade-offs make sense for a keyboard and trackball device.
When the iPhone came out, the Android team rushed to release a competitor product, but unfortunately it was too late to rewrite the UI
framework.
This is the same reason why Windows Mobile 6.5, Blackberry OS, and Symbian have terrible touch screen performance. Like Android, they
were not designed to prioritise UI rendering. Since the iPhone’s release, RIM, Microsoft, and Nokia have abandoned their mobile OS’s and
started from scratch. Android is the only mobile OS left that existed pre-iPhone.
So, why doesn’t the Android team rewrite the rendering framework? I’ll let Romain Guy explain:
“...a lot of the work we have to do today is because of certain choices made years ago... ...having the UI thread handle animations is the
biggest problem. We are working on other solutions to try to improve this (schedule drawing on vsync instead of block on vsync after drawing,
possible use a separate rendering thread, etc.) An easy solution would of course to create a new UI toolkit but there are many downsides to
this also.”
Romain doesn’t elaborate on what the downsides are, but it’s not difficult to speculate:
- All Apps would have to be re-written to support the new framework
- Android would need a legacy support mode for old apps
- Work on other Android features would be stalled while the new framework is developed
However, I believe the rewrite must happen, despite the downsides. As an aspiring product manager, I find Android’s lagginess absolutely
unacceptable. It should be priority #1 for the Android team.
When the topic of Android comes up with both technical and nontechnical friends, I hear over and over that Android is laggy and slow.
The reality is that Android can open apps and render web pages as fast or faster than iOS, but perception is everything. Fixing the UI lag
will go a long way to repairing Android’s image.
Beyond the perception issue, lag is a violation of one of Google’s core philosophies. Google believes that things should be fast. That’s a driving
philosophy behind Google Search, Gmail, and Chrome. It’s why Google created SPDY to improve on HTTP. It’s why Google builds tools to help
websites optimize their site. It’s why Google runs it’s own CDN. It’s why Google Maps is rendered in WebGL. It’s why buffering on Youtube is
something most of us remember, but rarely see anymore.
But perhaps the most salient reason why UI lag in Android is unacceptable comes from the field of Human-Computer Interaction (HCI). Modern
touch screens imply an affordance language of 1 to 1 mapping between your finger and animations on the screen. This is why the iOS over-scroll
(elastic band) effect is so cool, fun, and intuitive. And this is why the touch screens on Virgin America Flights are so frustrating: they are incredibly
laggy, unresponsive, and imprecise.
A laggy UI breaks the core affordance language of a touch screen. The device no longer feels natural. It loses the magic. The user is pulled out of
their interaction and must implicitly acknowledge they are using an imperfect computer simulation. I often get “lost” in an iPad, but I cringe when a
Xoom stutters between home screens. The 200 million users of Android deserve better.
And I know they will have it eventually. The Android team is one of the most dedicated and talented development teams in the world. With stars like
+Dianne Hackborn and +Romain Guy around, the Android rendering framework is in good hands.
I hope this post has reduced confusion surrounding Android lag. With some luck, Android 5.0 will bring the buttery-smooth Android we’ve all dreamed
about since we first held an HTC G1. In the mean time, I’ll be in Redmond working my butt off trying to get a beautiful and smooth mobile OS some
of the recognition it deserves.
Click to expand...
Click to collapse
How do Android Apps work- Java, its compilation and role of DalvikVM
OK, here goes mine..
was researching around about the role of java in android and I found this piece of info..
it explains the way android apps work and stuff..
Visit here for the full article..
What is Java?
Android applications are developed using the Java language. As of now, that’s really your only option for native applications. Java is a very popular programming language developed by Sun Microsystems (now owned by Oracle). Developed long after C and C++, Java incorporates many of the powerful features of those powerful languages while addressing some of their drawbacks. Still, programming languages are only as powerful as their libraries. These libraries exist to help developers build applications.
Some of the Java’s important core features are:
It’s easy to learn and understand
It’s designed to be platform-independent and secure, using
virtual machines
It’s object-oriented
Android relies heavily on these Java fundamentals. The Android SDK includes many standard Java libraries (data structure libraries, math libraries, graphics libraries, networking libraries and everything else you could want) as well as special Android libraries that will help you develop awesome Android applications.
Why is Platform Independence Important?
With many programming languages, you need to use a compiler to reduce your code down into machine language that the device can understand. While this is well and good, different devices use different machine languages. This means that you might need to compile your applications for each different device or machine language—in other words, your code isn’t very portable. This is not the case with Java. The Java compilers convert your code from human readable Java source files to something called “bytecode” in the Java world. These are interpreted by a Java Virtual Machine, which operates much like a physical CPU might operate on machine code, to actually execute the compiled code. Although it might seem like this is inefficient, much effort has been put into making this process very fast and efficient. These efforts have paid off in that Java performance in generally second only to C/C++ in common language performance comparisons.
Android applications run in a special virtual machine called the Dalvik VM. While the details of this VM are unimportant to the average developer, it can be helpful to think of the Dalvik VM as a bubble in which your Android application runs, allowing you to not have to worry about whether the device is a Motorola Droid, an HTC Evo, or the latest toaster running Android. You don’t care so long as the device is Dalvik VM friendly—and that’s the device manufacturer’s job to implement, not yours.
Why is Java Secure?
Let’s take this bubble idea a bit further. Because Java applications run within the bubble that is a virtual machine, they are isolated from the underlying device hardware. Therefore, a virtual machine can encapsulate, contain, and manage code execution in a safe manner compared to languages that operate in machine code directly. The Android platform takes things a step further. Each Android application runs on the (Linux-based) operating system using a different user account and in its own instance of the Dalvik VM. Android applications are closely monitored by the operating system and shut down if they don’t play nice (e.g. use too much processing power, become unresponsive, waste resources, etc.). Therefore, it’s important to develop applications that are stable and responsive. Applications can communicate with one another using well-defined protocols.
Compiling Your Code
Like many languages, Java is still a compiled language even though it doesn’t compile all the way down to machine code. This means you, the developer, need to compile your Android projects and package them up to deploy onto devices. The Eclipse development environment (used with the Android Development plug-in) makes this pretty painless. In Eclipse, automatic compilation is often turned on by default. This means that every time you save a project file, Eclipse recompiles the changes for your application package. You immediately see compile errors. Eclipse also interprets Java as you type, providing handy code coloring and formatting as well as showing many types of errors as you go. Often, you can click on the error and have Eclipse automatically fix a typo, or add an import statement, or provide a method stub for you, saving lots of typing.
You can still manually compile your code if you so desire. Within Eclipse, you’ll find the Build settings under the project menu. If you have “Build Automatically” turned on, you can still choose the “Clean…” option that will allow you to do full rebuild of all files. If “Build Automatically” is turned off, “Build All” and “Build Project” menu options are enabled. “Build All” means to build all of the projects in the workspace. You can have many projects in an Eclipse workspace.
The build process, for regular Java projects, results in a file with the extension of JAR – Java ARchive. Android applications take JAR files and package them for deployment on devices as Android PacKage files with an extension .apk. These formats not only include your compiled Java code, but also any other resources, such as strings, images, or sound files, that your application requires to run as well as the Application Manifest file, AndroidManifest.xml. The Android Manifest file is a file required by all Android applications, which you use to define configuration details about your app.
Click to expand...
Click to collapse
And here goes another article, by an Ex-Intern Andrew Munn who worked on the android project..
i just post the link here, its a huge article...
Follow up to “Android graphics true facts”, or The Reason Android is Laggy
Click to expand...
Click to collapse
An Extremely important thread for me..........My friend has an iPhone 3GS and he always considers it better than Android, underestimating my LG O1 I've many a times proved him wrong, but not with technical aspects.....Now he'd understand what is ANDROID!!!!
D3oDex3D_Ayush717 said:
An Extremely important thread for me..........My friend has an iPhone 3GS and he always considers it better than Android, underestimating my LG O1 I've many a times proved him wrong, but not with technical aspects.....Now he'd understand what is ANDROID!!!!
Click to expand...
Click to collapse
exactly ! android is 100 times better and powerfull than ios ! if in an iphone ui rendering didnt happen didicatedly, it would be 100 times more laggy than android. one other thing that shows that ios does concentrate completly on ui when scrolling- swipe left right through homscreens in speed (even with all apps closed) - ull see that the dots below which indicate which screen ur on , doesnt change at all untill uve stopped scrolling and then it moves directly to the current screen indicator!
---------- Post added at 03:16 PM ---------- Previous post was at 03:09 PM ----------
btw this here is a contradicting article to what andy you posted ! here ! :
Dianne Hackborn - 00:38 (edited) - Public
A few days ago I wrote a post trying to correct a lot of the inaccurate statements I have seen repeatedly mentioned about how graphics on Android works. This resulted in a lot of nice discussion, but unfortunately has also lead some people to come up with new, novel, and often technically inaccurate complaints about how Android works.
These new topics have been more about some fundamental design decisions in Android, and why they are wrong. I’d like to help people better understand (and judge) these discussions by giving some real background on why Android’s UI was designed the way it is and how it actually works.
One issue that has been raised is that Android doesn’t use thread priorities to reduce how much background work interrupts the user interface. This is outright wrong. It actually uses a number of priorities, which you can even find defined right here http://developer.android.com/reference/android/os/Process.html#THREAD_PRIORITY_AUDIO in the SDK.
The most important of these are the background and default priorities. User interface threads normally run at the default priority; background threads run in the background priority. Application processes that are in the background have all of their threads forced to the background priority.
Android’s background priority is actually pretty interesting. It uses a Linux facility called cgroups to put all background threads into a special scheduling group which, all together, can’t use more than 10% of the CPU. That is, if you have 10 processes in the background all trying to run at the same time, when combined they can't take away more than 10% of the time needed by foreground threads. This is enough to allow background threads to make some forward progress, without having enough of an impact on the foreground threads to be generally visible to the user.
(You may have noticed that a “foreground” priority is also defined. This is not used in current Android; it was in the original implementation, but we found that the Linux scheduler does not give enough preference to threads based on pure priority, so switched to cgroups in Android 1.6.)
I have also seen a number of claims that the basic Android design is fundamentally flawed and archaic because it doesn’t use a rendering thread like iOS. There are certainly some advantages to how iOS work, but this view is too focused on one specific detail to be useful, and glosses over actual similarities in how they behave.
Android had a number of very different original design goals than iOS did. A key goal of Android was to provide an open application platform, using application sandboxes to create a much more secure environment that doesn’t rely on a central authority to verify that applications do what they claim. To achieve this, it uses Linux process isolation and user IDs to prevent each application from being able to access the system or other application in ways that are not controlled and secure.
This is very different from iOS’s original design constraints, which remember didn’t allow any third party applications at all.
An important part of achieving this security is having a way for (EDIT: It has been pointed out to me that iOS does in fact use multiple windows and multiple GL contexts. Lesson to me, just don't talk about anything I haven't directly verified. That still doesn't change things for Android, though, where as I mention later we simply did not have hardware and drivers that could do multiple GL contexts until fairly recently.)
individual UI elements to share the screen in a secure way. This is why there are windows on Android. The status bar and its notification shade are windows owned and drawn by the system. These are separate from the application’s window, so the application can not touch anything about the status bar, such as to scrape the text of SMS messages as they are displayed there. Likewise the soft keyboard is a separate window, owned by a separate application, and it and the application can only interact with each other through a well defined and controlled interface. (This is also why Android can safely support third party input methods.)
Another objective of Android was to allow close collaboration between applications, so that for example it is easy to implement a share API that launches a part of another application integrated with the original application’s flow. As part of this, Android applications traditionally are split into pieces (called “Activities”) that handle a single specific part of the UI of the application. For example, the contacts lists is one activity, the details of a contact is another, and editing a contact is a third. Moving between those parts of the contacts UI means switching between these activities, and each of these activities is its own separate window.
Now we can see something interesting: in almost all of the places in the original Android UI where you see animations, you are actually seeing windows animate. Launching Contacts is an animation of the home screen window and the contacts list window. Tapping on a contact to see its details is an animation of the contacts list window and the contacts details window. Displaying the soft keyboard is an animation of the keyboard window. Showing the dialog where you pick an app to share with is an animation of a window displaying that dialog.
When you see a window on screen, what you are seeing is actually something called a “surface”. This is a separate piece of shared memory that the window draws its UI in, and is composited with the other windows to the screen by a separate system service (in a separate thread, running at a higher than normal priority) called the “surface flinger.” Does this sound familiar? In fact this is very much like what iOS is doing with its views being composited by a separate thread, just at a less fine-grained but significantly more secure level. (And this window composition has been hardware accelerated in Android from the beginning.)
The other main interesting interaction in the UI is tracking your finger -- scrolling and flinging a list, swiping a gallery, etc. These interactions involve updating the contents inside of a window, so require re-rendering that window for each movement. However, being able to do this rendering off the main thread probably doesn’t gain you much. These are not simple “move this part of the UI from X to Y, and maybe tell me when you are done” animations -- each movement is based on events received about the finger on the screen, which need to be processed by the application on its main thread.
That said, being able to avoid redrawing all of the contents of the parts of the UI that are moving can help performance. And this is also a technique that Android has employed since before 1.0; UI elements like a ListView that want to scroll their content can call http://developer.android.com/reference/android/view/View.html#setDrawingCacheEnabled(boolean) to have that content rendered into a cache so that only the bitmap needs to be drawn as it moves.
Traditionally on Android, views only have their drawing cache enabled as a transient state, such as while scrolling or tracking a finger. This is because they introduce a fair amount more overhead: extra memory for the bitmap (which can easily total to multiple times larger than the actual frame buffer if there are a number of visual layers), and when the contents inside of a cached view need to be redrawn it is more expensive because there is an additional step required to draw the cached bitmap back to the window.
So, all those things considered, in Android 1.0 having each view drawn into a texture and those textures composited to the window in another thread is just not that much of a gain, with a lot of cost. The cost is also in engineering time -- our time was better spent working on other things like a layout-based view hierarchy (to provide flexibility in adjusting for different screen sizes) and “remote views” for notifications and widgets, which have significantly benefited the platform as it develops.
In fact it was just not feasible to implement hardware accelerated drawing inside windows until recently. Because Android is designed around having multiple windows on the screen, to have the drawing inside each window be hardware accelerated means requiring that the GPU and driver support multiple active GL contexts in different processes running at the same time. The hardware at that time just didn’t support this, even ignoring the additional memory needed for it that was not available. Even today we are in the early stages of this -- most mobile GPUs still have fairly expensive GL context switching.
I hope this helps people better understand how Android works. And just to be clear again from my last point -- I am not writing this to make excuses for whatever things people don’t like about Android, I just get tired of seeing people write egregiously wrong explanations about how Android works and worse present themselves as authorities on the topic.
There are of course many things that can be improved in Android today, just as there are many things that have been improved since 1.0. As other more pressing issues are addressed, and hardware capabilities improve and change, we continue to push the platform forward and make it better.
One final thought. I saw an interesting comment from Brent Royal-Gordon on what developers sometimes need to do to achieve 60fps scrolling in iOS lists: “Getting it up to sixty is more difficult—you may have to simplify the cell's view hierarchy, or delay adding some of the content, or remove text formatting that would otherwise require a more expensive text rendering API, or even rip the subviews out of the cell altogether and draw everything by hand.”
I am no expert on iOS, so I’ll take that as as true. These are the exact same recommendations that we have given to Android’s app developers, and based on this statement I don't see any indication that there is something intrinsically flawed about Android in making lists scroll at 60fps, any more than there is in iOS.
D3oDex3D_Ayush717 said:
An Extremely important thread for me..........My friend has an iPhone 3GS and he always considers it better than Android, underestimating my LG O1 I've many a times proved him wrong, but not with technical aspects.....Now he'd understand what is ANDROID!!!!
Click to expand...
Click to collapse
Ehhhh I still think 3GS is better than optimus one
That's a lot of bull**** in even more words...
Kidding
But I don't understand anything of it, I'll leave it to the real devs (A)
Luck dev'ing
ok, here some basic informations on how long it take and why before a developer can
release a complete OS:
http://developer.sonyericsson.com/w...from-source-code-release-to-software-upgrade/
About Accelerated Android Rendering:
It's pretty interesting although these guys aren't talking about Ice Cream Sandwich (they're talking about Honeycomb that introduced hardware accelerated 2D rendering)
http://www.youtube.com/watch?v=v9S5EO7CLjo
I could be way off base here, but is there anything useful that could be extracted from qualcomm's adreno sdk?
https://developer.qualcomm.com/
terratrix said:
Ehhhh I still think 3GS is better than optimus one
Click to expand...
Click to collapse
I am not comparing 3Gs and O1, am talking abt. difference between AndroidOS and iOS............
Sent from my LG Optimus One P500 using XDA App
This week, google started a nice topic on the android developer page "Best practices to develop android applications".
Reading some articles is recommended for developers who want to save some battery and/or network traffic, want to spped
up listviews, save ram and other good things:
look here:
Improving Layout Performance
Optimizing Battery Life
Sharing content between applications
i hope, this can someone help to understand what we can do to make things nice.

[Q] is there an app that checks all installed or purchased apps for ICS compatibilty?

maybe either through API level, or by querying market info
Reason: i want to check on GB before I upgrade to ICS, which apps will not work.
don't know if relevant but it is for SGS II
Thx in advance
repost from here as nobody could really answer my question
can't believe I'm the only one with that issue
maybe an idea for a dev? would be willing to pay for that ;-)
I don't see why this can't be done:
-http://stackoverflow.com/questions/2695746/how-to-get-a-list-of-installed-android-applications-and-pick-one-to-run
-http://developer.android.com/reference/android/content/pm/PackageManager.html
-http://developer.android.com/reference/android/content/Context.html#getApplicationInfo()
I haven't thought through the problem just yet, but its seems to be doable. If you don't find an app soon, I will start working on a script that does it and, if successful, a proper, free software app. I am hoping the available methods won't require something as stupid as launching each app fully. But again, I haven't thought it through. Thanks for the idea btw.
EDIT:
Made a little more effort
https://groups.google.com/forum/?hl=en&fromgroups#!topic/android-developers/dXLACRIizKc
I will work on something this weekend and get back with y'all.
EDIT 2:
So it looks like I would need maxSdkVersion which I don't find in the API. Furthermore, it is strongly suggested that one not use maxSdkVersion when building an app so that doesn't sound all that useful. I have received another, much more complicated suggestion that may do what I want, but I will have to look hard at it. Looks like I'm going nowhere in my effort. Always open to suggestions. More to come later this weekend.
I'm not the sharpest tool in the shed, but I thought this was mostly a straightforward task using the API's exposure to AndroidManifest.xml. As per my previously posted link to an Android Developers discussion on the topic, my approach is dead in the water as far as I can see. I did try to find an answer though to the best of my limited ability. If anyone has or ever solves this problem (I consider it a problem) I would hope they find the this thread.
Thanks for the learning experience. I give up.
Most older apps will work fine on ICS, its pretty backwards compatible. If the app uses legacy menus the button will appear in the old lower left hand corner location instead of the upper right hand corner like apps written for ICS.
i'm no dev so bear with me if i write stupid stuff
one likely but not very promising sounding way might be to use android:targetSdkVersion as "As Android evolves with each new version, some behaviors and even appearances might change. However, if the API level of the platform is higher than the version declared by your app's targetSdkVersion, the system may enable compatibility behaviors to ensure that your app continues to work the way you expect. You can disable such compatibility behaviors by specifying targetSdkVersion to match the API level of the platform on which it's running. For example, setting this value to "11" or higher allows the system to apply a new default theme (Holo) to your app when running on Android 3.0 or higher and also disables screen compatibility mode when running on larger screens (because support for API level 11 implicitly supports larger screens)."
question though is how many apps actually use this?
However after having read this re android:maxSdkVersion "Warning: Declaring this attribute is not recommended. First, there is no need to set the attribute as means of blocking deployment of your application onto new versions of the Android platform as they are released. By design, new versions of the platform are fully backward-compatible. Your application should work properly on new versions, provided it uses only standard APIs and follows development best practices. Second, note that in some cases, declaring the attribute can result in your application being removed from users' devices after a system update to a higher API Level. Most devices on which your application is likely to be installed will receive periodic system updates over the air, so you should consider their effect on your application before setting this attribute." (taking from here) i now don't know how important my op is, but then why do all app devs release new versions "fixing things" for ICS?
One pretty significant example which actually currently will prevent my phone from getting ICS for now is that the subsonic app in the current version produces stuttering when playing audio while downloading (problem description here).
Isn't there any way to instead of searching the phone searching google play/android market instead?
Randi said:
maybe either through API level, or by querying market info
Reason: i want to check on GB before I upgrade to ICS, which apps will not work.
don't know if relevant but it is for SGS II
Thx in advance
repost from here as nobody could really answer my question
Click to expand...
Click to collapse
Here's a list of some working games/apps for ICS
Theoretically an Android app (or a combo of say App Engine and Android) could find your installed apps, seacrh Play for said apps and then scrape the page for relevant information. Doesn't sound to hard, but I didn't think about too hard either. Perhaps I will check out what useful info is on Play and how feasible scraping its markup will be. I will get back at y'all if I do.

Getting Started With Android

Hello, I'm new to this forum, but, I have been in other forums relating to hacking 'mobile' devices. Previously, I was part of a number of different iOS forums, so, I know about jailbreaking, and troubleshooting problems on the iOS platform. I'll also share my few thoughts on Android, and my experience on Jelly Bean so far within this, embarrassingly long, post.
However, with Google's announcement of the Nexus 7, I was impressed by Android, and I was thoroughly impressed that it had finally sorted out the lagging problems. (I had used Android tablets, but they never appealed to me due to the lag which each one experienced. Jelly Bean, and, in particular, 'Project Butter', has remedied this issue - I have experienced no lag on my Nexus 7 since I received it a week ago.) And so, I pre-ordered the Nexus 7 - deciding against purchasing, a much more expensive, but, I believed, an excellent tablet, the iPad.
iOS, also, was beginning to become less interesting to use - sure, the iPad may have a larger scale of the iOS mobile operating system, but it remained largely the same. Same interface (although on a, admittedly, much better screen) same apps, same freedom - without the jailbreak. The new iPad (as advertised and sold by Apple), I thought, also did not do an excellent job on improving it's predecessor. Sure, an improved screen, and processor to power the screen - but is that worth it? (Considering another one will, inevitably, be released within a year.)
Tegra 3 was making strides. Although, one thing that saddens me about Android, and is something which definitely hinders it's ability to overthrow iOS - is the fragmentation present on the operating system. I'm not sure which apps are compatible with my Nexus 7, and which ones are not. (On a side not, piracy is also another factor which slows the progress of Android, and is perhaps a reason why some apps are exclusive to iOS in the first place - I'm looking at you Epic Games! Android certainly has the power and graphical capabilities to run the game, but Epic, like all companies must, are interested primarily on their profits. Again, fragmentation plays its part!)
Although, shifting to different mobile operating systems is rather difficult - especially since I am intrigued by modifications, and altering devices to make them fulfil my needs. On iOS, it was quite simple: There was only one thing to do - jailbreak. A process, which in itself, was extremely simple (for the most part.) It appears there are also much more iOS specialists on YouTube, who post easy to follow tutorials. Also, since iOS is a 'closed' platform, I was not concerned by viruses, and I knew what I could, and could not do.
Android, however, is open - and this, paradoxically, limits myself. There are so many modifications, I do not know which ones are good, which ones are bad, and which ones could result in bricking my, now beloved, Nexus 7. I don't want to completely mess up my device, or install random rubbish which only makes it slower. I have, almost literally, no clue on where to start. Sure, I've downloaded a few basic apps from Google Play - TegraZone - but who cannot do that without assistance?
I want to install more widgets, that amaze me, and also applications which will prove useful. (For example, a file managing app, a torrent app (no piracy! ), and other cool things.) I also, though, require a reliable anti-virus. Having previously used iOS for a number of years, I was not subject to any viruses, and, indeed, I did not have to worry about viruses - there are very few, if any, viruses on iOS. Android, though, is much more open to viruses. I need to ensure that I do not succumb to one.
However, what I am most interested in is the 'rooting' process, and the benefits which can derive from it. What extra things can I achieve by rooting my Nexus 7? What applications should I install to supplement the rooted device? (I have read of ClockWork(?)Mod, but I have not really ventured that far into applications which take advantage of rooting, since a lot of the information mentioned appears to me as gibberish, due to my noobishness .) And, perhaps most importantly, if something were to go tragically wrong - how would I recover the device. (Again, I'll make a reference to iOS, since, it is an operating system I am familiar with - you could simply restore the device through iTunes - what is Android's alternative?)
So, can you assist me in getting accustomed to the Android operating system by providing your recommended apps, and also useful tutorials which I can use to develop my understanding? I literally have no clue what half of the things in the Android section of this forum talk about - they included an abundance of vocabulary which, evidently, you need relative experience to understand. I also need require some Android experts - involved in perhaps development - to follow on Twitter!
Thanks for reading through my essay! Please, help a noob get started! I would appreciate all forms of feedback!
Note: I have downloaded the Android SDK (Although, not installed it, as of the time of writing.), and I have also got the factory image for the Nexus 7. I achieved this by briefly viewing a YouTube video. There do not appear to be that many, though. The XDA YouTube channel generally covers the news aspect of all things related to Android.
The greatest bit of advice I can give is to start here - Nexus 7 - and read read read!
There's no backup and restoring the entire system without root. When you do you can install a custom recovery. Note there is always a stock recovery that is far limited compared to recoveries such as CWM.
Android really doesn't have problems with viruses. Seriously. The only reason why it appears so is because idiots sideload apps from shady sites that contain viruses, but on iOS there is no sideloading without jailbreak.
For a file managing app, you can use Explorer (my preferance), ES File Explorer, or Astro.
Widgets are really personal preferance, I keep a music widget to quickly play music, a calendar widget, weather widget. You might want a news widget like Flipboard.
Rooting gives you full access to your device. It allows performance gains like overclocking, battery saving with underclocking. Like I said before, it opens to ability to backup/restore entire systems and individual apps with Titanium Backup. You can install customs ROMs, delete system apps (usually bloatware), remap the physical keys, use Tasker for automated tasking (pretty awesome btw). You can also edit system files, such as notification tones, ringtones, bootanimation, etc.
Sent from my MB508 using xda premium
Konflict1471 said:
Hello, I'm new to this forum, but, I have been in other forums relating to hacking 'mobile' devices. Previously, I was part of a number of different iOS forums, so, I know about jailbreaking, and troubleshooting problems on the iOS platform. I'll also share my few thoughts on Android, and my experience on Jelly Bean so far within this, embarrassingly long, post.
However, with Google's announcement of the Nexus 7, I was impressed by Android, and I was thoroughly impressed that it had finally sorted out the lagging problems. (I had used Android tablets, but they never appealed to me due to the lag which each one experienced. Jelly Bean, and, in particular, 'Project Butter', has remedied this issue - I have experienced no lag on my Nexus 7 since I received it a week ago.) And so, I pre-ordered the Nexus 7 - deciding against purchasing, a much more expensive, but, I believed, an excellent tablet, the iPad.
iOS, also, was beginning to become less interesting to use - sure, the iPad may have a larger scale of the iOS mobile operating system, but it remained largely the same. Same interface (although on a, admittedly, much better screen) same apps, same freedom - without the jailbreak. The new iPad (as advertised and sold by Apple), I thought, also did not do an excellent job on improving it's predecessor. Sure, an improved screen, and processor to power the screen - but is that worth it? (Considering another one will, inevitably, be released within a year.)
Tegra 3 was making strides. Although, one thing that saddens me about Android, and is something which definitely hinders it's ability to overthrow iOS - is the fragmentation present on the operating system. I'm not sure which apps are compatible with my Nexus 7, and which ones are not. (On a side not, piracy is also another factor which slows the progress of Android, and is perhaps a reason why some apps are exclusive to iOS in the first place - I'm looking at you Epic Games! Android certainly has the power and graphical capabilities to run the game, but Epic, like all companies must, are interested primarily on their profits. Again, fragmentation plays its part!)
Although, shifting to different mobile operating systems is rather difficult - especially since I am intrigued by modifications, and altering devices to make them fulfil my needs. On iOS, it was quite simple: There was only one thing to do - jailbreak. A process, which in itself, was extremely simple (for the most part.) It appears there are also much more iOS specialists on YouTube, who post easy to follow tutorials. Also, since iOS is a 'closed' platform, I was not concerned by viruses, and I knew what I could, and could not do.
Android, however, is open - and this, paradoxically, limits myself. There are so many modifications, I do not know which ones are good, which ones are bad, and which ones could result in bricking my, now beloved, Nexus 7. I don't want to completely mess up my device, or install random rubbish which only makes it slower. I have, almost literally, no clue on where to start. Sure, I've downloaded a few basic apps from Google Play - TegraZone - but who cannot do that without assistance?
I want to install more widgets, that amaze me, and also applications which will prove useful. (For example, a file managing app, a torrent app (no piracy! ), and other cool things.) I also, though, require a reliable anti-virus. Having previously used iOS for a number of years, I was not subject to any viruses, and, indeed, I did not have to worry about viruses - there are very few, if any, viruses on iOS. Android, though, is much more open to viruses. I need to ensure that I do not succumb to one.
However, what I am most interested in is the 'rooting' process, and the benefits which can derive from it. What extra things can I achieve by rooting my Nexus 7? What applications should I install to supplement the rooted device? (I have read of ClockWork(?)Mod, but I have not really ventured that far into applications which take advantage of rooting, since a lot of the information mentioned appears to me as gibberish, due to my noobishness .) And, perhaps most importantly, if something were to go tragically wrong - how would I recover the device. (Again, I'll make a reference to iOS, since, it is an operating system I am familiar with - you could simply restore the device through iTunes - what is Android's alternative?)
So, can you assist me in getting accustomed to the Android operating system by providing your recommended apps, and also useful tutorials which I can use to develop my understanding? I literally have no clue what half of the things in the Android section of this forum talk about - they included an abundance of vocabulary which, evidently, you need relative experience to understand. I also need require some Android experts - involved in perhaps development - to follow on Twitter!
Thanks for reading through my essay! Please, help a noob get started! I would appreciate all forms of feedback!
Note: I have downloaded the Android SDK (Although, not installed it, as of the time of writing.), and I have also got the factory image for the Nexus 7. I achieved this by briefly viewing a YouTube video. There do not appear to be that many, though. The XDA YouTube channel generally covers the news aspect of all things related to Android.
Click to expand...
Click to collapse
Welcome to Android!
I think you'll enjoy it
Ok on to your questions:
These are gonna be out of order
Reliable anti-virus: Trend Micro Mobile Security (worth the $10 )
Benefits of CWM: Backups, restores, custom ROM flashing
Benefits of rooting: custom ROMs, access to system files
Some apps to get started: Angry birds , Rom Manager, BatteryCalibration, ES File Manager, imo
Android's alternative to iTunes' restore is CWM. It's not official but its tons better then iTunes. You do it from the device and its a full, complete restore.
Ask again if I didn't answer something
Very long post BUT a few things to think about.
I have never used a antivirus software and really they are pointless just look at the apps before you download them read the comments and look at the permissions the app uses and think "does that fart noise app need to be able to send texts" of cause the answer is no so don't install it.
Other fractures can be useful like phone tracking but there are better apps that are free for this like prey.
If you root you will have full control of your filesystem much like su on Linux if you have ever used this. You could for example with root use my project to run Linux distros like Ubuntu. The nexus 7 due to being under googles power is very easy to unlock and root and if you mess something up easy to restore a backup. There are other great apps to like being able to back up apps and there data.
Just a few points and if you have more questions feel free to pm me
Sent from my GT-N7000 using xda premium
AVG or Avast antivirus are the best.
Solid Explorer is the best file explorer.
UCCW is the most customizable widget.
Taptu or Pulse are the best news readers.
Pocket.
Tapatalk forum.
MX player is the best video player.
Dropbox is by far the best cloud storage.
Photoshop.
PowerAMP is the best Music Player.
I would say that you don't need to root a Nexus Device. You got the latest OS and will always have.
The only reason you would wanna root is for some root apps.
Like Titanium Backup, AdBlocker and ROM Toolbox.
CWM is only necessary if you want to flash a custom ROM and you don't need to because you already have AOSP Jelly BEAN.
Thanks for all of the responses! And apologies for the long post! xD
I'll look through the Nexus 7 forums as XperienceD mentioned.
And by ClockWordMod - is that actually ROM Manager? I'm confused, and this is probably the most noobish question you'll get. xD
Since I don't really want to root my Nexus 7 (currently, that is) - then I would not really need to back up the data, since, there will be no risk. I'm not really concerned about overclocking my device - it's quite fast as it is. However, battery saving is quite tempting. Although, I don't see it as a reason alone to root my Nexus. And, as it is stock Google - there is no unnecessary bloat ware attached to the device.
And I can't get viruses while browsing through the internet?
I always thought that was the case, which is why I was looking for an anti-virus application.
Also, for UCCW - do I need to install a custom launcher of some sort? Is it really possible to add a widget, that appears complicated, simply through the Google Play market?
And finally, while installing ES File Explorer - I noticed that it had permission to remove shortcuts without user intervention. Is this the sort of permission I should be checking for on other applications? Since people on this forum recommended the app, I didn't really have any doubts of whether it was legit.3.
Also, how you I get toggles back on the notification bar? On iOS (sorry for the repeated mentioning of the scum ) - I had SBSettings, which was similar to the notifications available on Android. How would I add the toggles back?
Konflict1471 said:
Thanks for all of the responses! And apologies for the long post! xD
I'll look through the Nexus 7 forums as XperienceD mentioned.
And by ClockWordMod - is that actually ROM Manager? I'm confused, and this is probably the most noobish question you'll get. xD
Click to expand...
Click to collapse
It is a custom recovery which lets you backup your ROM, flash new ROMs and make other changes to your device (so in a way use it is a ROM manager)
Konflict1471 said:
Since I don't really want to root my Nexus 7 (currently, that is) - then I would not really need to back up the data, since, there will be no risk. I'm not really concerned about overclocking my device - it's quite fast as it is. However, battery saving is quite tempting. Although, I don't see it as a reason alone to root my Nexus. And, as it is stock Google - there is no unnecessary bloat ware attached to the device.
Click to expand...
Click to collapse
This is true if you have a nexus device the need for root is far less, and the fact that alot of apps that used to need root have become features in new versions of android, back in the days of 1.5/6 you needed root to pretty much do anything good
Konflict1471 said:
And I can't get viruses while browsing through the internet?
I always thought that was the case, which is why I was looking for an anti-virus application.
Click to expand...
Click to collapse
Sure you might get windows viruses but in no way will they beable to run on your device let aloan harm it. The only way anything evil can be done is if you install the app (and in alot of cases give it root) so check those permissions!
anti-virus apps are the biggest scam (well paid one anyway) all they can really do is check a database of known bad apps and check it its there, other than that they do nothing. They are a trick from all the Windows users coming to android after having it hammered into them that you need anti-virus
Konflict1471 said:
Also, for UCCW - do I need to install a custom launcher of some sort? Is it really possible to add a widget, that appears complicated, simply through the Google Play market?
Click to expand...
Click to collapse
Nope just add the widget to your home creen, in the app launcher press the widget button and then long press on the widget you want and drag it to the home screen you want, many apps include widgets so will be installed with the app as part of it (e.g twitter) while other 'apps' are just widgets
Konflict1471 said:
And finally, while installing ES File Explorer - I noticed that it had permission to remove shortcuts without user intervention. Is this the sort of permission I should be checking for on other applications? Since people on this forum recommended the app, I didn't really have any doubts of whether it was legit.3.
Click to expand...
Click to collapse
There is likely a good reason for this (And with alot of apps if there is a odd permissions it will say in the apps description why its needed) but yes its the kind of thing you have to stop and think about
Konflict1471 said:
Also, how you I get toggles back on the notification bar? On iOS (sorry for the repeated mentioning of the scum ) - I had SBSettings, which was similar to the notifications available on Android. How would I add the toggles back?
Click to expand...
Click to collapse
to add toggles you would either need to use a custom ROM, or download a app that will do it like this one https://play.google.com/store/apps/details?id=de.j4velin.notificationToggle&hl=en
Thanks very much for your detailed and extremely helpful reply!
I'll just do what you recommended! The Notification Toggle is an extremely impressive app, I must admit.
Since there is no point downloading a paid antivirus, should I download Avast Anti-virus (since it's free), just for precautionary measures?
Konflict1471 said:
Thanks very much for your detailed and extremely helpful reply!
I'll just do what you recommended! The Notification Toggle is an extremely impressive app, I must admit.
Since there is no point downloading a paid antivirus, should I download Avast Anti-virus (since it's free), just for precautionary measures?
Click to expand...
Click to collapse
Well its not going to hurt and would at least prevent an app thats bad be installed if you missed it. And like I said some do have some nice other features just the "anit-virus" side of it is rather pointless
There is a huge thread with skins for UCCW.
And Power Widgets or Notification Toggles are the best Notification Drawer toggle apps.
NT has customizable icons.
If you want weather too there's some new app called Deluxe Notification Bar which shows weather and toggles.
Look in the Nexus 7 forums for no-root battery saving advice.
And if you do not want battery drain don't use Anti-virus.
I've never had any virus problems.
If you're unrooted they can't really mess with your phone.
Just stay away from creepy apps, Chinese apps (no racist), piracied apps and apps from other than Play Store and XDA.
And never play ad-supported games.
Buy ad-free versions or play offline if you don't want battery drain.
Also SwiftKey is a MUST, if you're not happy with Jelly Bean keyboard.

ART, Why?

I know some people will not like what i'm going to write here, So should user's use ART runtime? No! .
First let's talk about Google-in-Go (Go), Go is the language from Google and Android is the mobile OS from Google. So far there is no Android SDK for Go, and Go doesn't support JNI so switch to ART sound a good idea since ART can compile to two banckends "Quick" and "Portable" "JIT and LLVM".
If it's LLVM, that pretty much opens the door for running Native Client apps on Android, and possibly even merging Android with ChromeOS, right?
Go 2.0 can handles 64-bit much better than 32-bit and 64-bit applications is Google next target. Porting Android's Dalvik to 64-bit would be like converting a subcompact econobox into an all terrain SUV. It would make far more sense to throw it away and start from scratch, where scratch is, for Google, ART + Go
Why Go?
Go is fast, Go launguage is bundled with high quality libraries, Go is from Google!
.
Now, FlexyCore. Flexycore's most prominent product is "droidbooster," /generating heavily optimized ARM binaries/ an app that will make your Android device run 10x faster and increase battery life... sound familiar? "ART"
FlexyCore was development outside the public eye, And now Google acquisition the company for $23.1 million!, Google statement was: The FlexyCore team has strong expertise in building software to optimize Android device performance, and we think they’d be a great fit with our team.
Let's talk again why not to use ART now?
Android is implemented in Java. Pretty much all of Google Play Services is implemented in Java.
That means android can rely less on the fact that graphics and guts of many UI widgets are native code under a thin layer of Java. Android was always a Java OS. So you will not find any different if you switch to ART unless you are doing significant computation in your own app, a synthetic benchmark will vastly over-emphasize the impact of a better JIT. ART is there only so Google can obtain early feedback from developer's and partner's.
Sources:
(ycombinator - arstechnica - paradigmx - Android)

AndriodOAP Project

Hi all
This is my thread for an ongoing project im working on called AndroidOAP
OAP is not Owesome Android Project, lol
This is Andriod Old Age Pensioner!
But WAIT!! This may have many applications to other areas in the caring community!
Background
My mum is 75 and has early stage altzimers. I have noticed a lapes of memory, eyesight and hearing. I have also just got her a 10" rk3066 4.1 tab for xmas.
The aim of this is to help her keep in touch with family and friends (social networking), keep up to date on the weather/news (she loves it), keep her mind active (games).
Aim of Project
This project has a few aims, guided by anyone who wants to contribute. some of which are :
BASIC
- Creating a simple UI that is easy for pensioners/handicapped people to use
- Identifying simple to use apps that perform complex tasks
- Utilise the accessibility capabilities of android specifically for the users needs
- Monitor the device remotely
- Monitor the users interactions and provide alerts (IE medication, doctors apointments, etc)
EXTRA
- Create a working rom that can be installed on devices that can be given to the target audience (OAPs, disables, etc)
- Obtain ongoing support for this project
This will probably not interest most of you but anyone willing to contribute to this nobell cause will be very appreciated
Please get in touch with any ideas
Thanks for your time
Chriz
Cass1977 said:
Hi all
This is my thread for an ongoing project im working on called AndroidOAP
OAP is not Owesome Android Project, lol
This is Andriod Old Age Pensioner!
But WAIT!! This may have many applications to other areas in the caring community!
Background
My mum is 75 and has early stage altzimers. I have noticed a lapes of memory, eyesight and hearing. I have also just got her a 10" rk3066 4.1 tab for xmas.
The aim of this is to help her keep in touch with family and friends (social networking), keep up to date on the weather/news (she loves it), keep her mind active (games).
Aim of Project
This project has a few aims, guided by anyone who wants to contribute. some of which are :
BASIC
- Creating a simple UI that is easy for pensioners/handicapped people to use
- Identifying simple to use apps that perform complex tasks
- Utilise the accessibility capabilities of android specifically for the users needs
- Monitor the device remotely
- Monitor the users interactions and provide alerts (IE medication, doctors apointments, etc)
EXTRA
- Create a working rom that can be installed on devices that can be given to the target audience (OAPs, disables, etc)
- Obtain ongoing support for this project
This will probably not interest most of you but anyone willing to contribute to this nobell cause will be very appreciated
Please get in touch with any ideas
Thanks for your time
Chriz
Click to expand...
Click to collapse
If I read this correctly, you want to develop an OS based on Android, but one that is extremely simple to use? All I know is that this would be an extremely time consuming project, probably half a year at the least, because you'd have to remove tons of drawables (images and stuff that is rendered) and code, and add in many more. It would be much easier to just install a launcher with big icons, change the system font size to the largest possible, perhaps use some accessibility settings, and debloat the tablet to the max.
Has your mother ever used electronic gadgets before? I forget the saying, but it's something like you can't teach an old dog new tricks. Considering that these types of electronics didn't exist during older peoples' generations, it'll be significantly harder to get them accustomed to such things. I don't know if I'm stereotyping or not, but it may be increasingly difficult to teach her how to use Android because she has Alzheimers. I'm not saying it's not worth a try though. As long as she doesn't feel overwhelmed or frustrated, I'd say to definitely try it out for a while and see how it goes. Happy holidays and have a happy new year. I hope your gift does good for you all.
Codename13 said:
If I read this correctly, you want to develop an OS based on Android, but one that is extremely simple to use? All I know is that this would be an extremely time consuming project, probably half a year at the least, because you'd have to remove tons of drawables (images and stuff that is rendered) and code, and add in many more. It would be much easier to just install a launcher with big icons, change the system font size to the largest possible, perhaps use some accessibility settings, and debloat the tablet to the max.
Has your mother ever used electronic gadgets before? I forget the saying, but it's something like you can't teach an old dog new tricks. Considering that these types of electronics didn't exist during older peoples' generations, it'll be significantly harder to get them accustomed to such things. I don't know if I'm stereotyping or not, but it may be increasingly difficult to teach her how to use Android because she has Alzheimers. I'm not saying it's not worth a try though. As long as she doesn't feel overwhelmed or frustrated, I'd say to definitely try it out for a while and see how it goes. Happy holidays and have a happy new year. I hope your gift does good for you all.
Click to expand...
Click to collapse
Thanks for the input dude, but, I think your over complicating things. A custom rom doesnt mean rebuilding it from the ground up! The aim is to find the most user friendly apps and the best settings and then create a rom around that. no need for new icons, etc.
Just to let you know, even though my mum is 75 she has been a nurse all her life so is well versed on using computers (hell, she brought me up and im a developer, lol). Touching icons on a screen will be no problem for her, altzimers or not. To be fair, you are stereotyping and its pretty sad
Regardless of the support I will continue with this as its a personal project that I will persue. I was just after any help I could get, not negativity.
Have a nice day
Cass1977 said:
Hi all
This is my thread for an ongoing project im working on called AndroidOAP
OAP is not Owesome Android Project, lol
This is Andriod Old Age Pensioner!
But WAIT!! This may have many applications to other areas in the caring community!
Background
My mum is 75 and has early stage altzimers. I have noticed a lapes of memory, eyesight and hearing. I have also just got her a 10" rk3066 4.1 tab for xmas.
The aim of this is to help her keep in touch with family and friends (social networking), keep up to date on the weather/news (she loves it), keep her mind active (games).
Aim of Project
This project has a few aims, guided by anyone who wants to contribute. some of which are :
BASIC
- Creating a simple UI that is easy for pensioners/handicapped people to use
- Identifying simple to use apps that perform complex tasks
- Utilise the accessibility capabilities of android specifically for the users needs
- Monitor the device remotely
- Monitor the users interactions and provide alerts (IE medication, doctors apointments, etc)
EXTRA
- Create a working rom that can be installed on devices that can be given to the target audience (OAPs, disables, etc)
- Obtain ongoing support for this project
This will probably not interest most of you but anyone willing to contribute to this nobell cause will be very appreciated
Please get in touch with any ideas
Thanks for your time
Chriz
Click to expand...
Click to collapse
Hi @Cass1977, I see your project as a great initiative to encourage older people to use technology. Although this project might be huge (and I don't have the tablet to test), I might be able to just provide suggestions for your project.
In the Basic section:
Simple UI: It should be easy, due to the fact that many launchers today are user-friendly and easy to use.
Simple to use apps that perform complex stuff: do give some examples.
accessibility capabilities: I don't know of much apps for that (there could be some in the play store) but once we attract the attention of some developers, we can start rolling.
Monitor the device remotely: what do u mean exactly?
Isn't monitor the user's interaction same as the point above? Correct me if I'm wrong.
More suggestions:
Create some tutorials for some complicated apps.
Better colour profile.
Less bright screen=less strain to the eye in low light conditions.
Bigger font=less strain to the eye.
More suggestions will come as I think of them.
Smack that thanks button if I helped!
Note 2 LTE powered by Illusion ROM and Plasma Kernel.
Sent from dat small country called Singapore.
P.S. replies with quotes will be replied to faster.
Hi @Cass1977, I see your project as a great initiative to encourage older people to use technology. Although this project might be huge (and I don't have the tablet to test), I might be able to just provide suggestions for your project.
In the Basic section:
Simple UI: It should be easy, due to the fact that many launchers today are user-friendly and easy to use.
Simple to use apps that perform complex stuff: do give some examples.
accessibility capabilities: I don't know of much apps for that (there could be some in the play store) but once we attract the attention of some developers, we can start rolling.
Monitor the device remotely: what do u mean exactly?
Isn't monitor the user's interaction same as the point above? Correct me if I'm wrong.
Click to expand...
Click to collapse
Good advice, but I feel too many launchers have too many options. the main thing the user needs is simple to access apps. Maybe large icons, etc.My mum likes her news and weather too so simple widgets may help with things like that (A lot are provided with the apps).
TTS will be required too (Text to speech). Maybe an app that will speak highlighted words? Probably have to be built?
More suggestions:
Create some tutorials for some complicated apps.
Better colour profile.
Less bright screen=less strain to the eye in low light conditions.
Bigger font=less strain to the eye.
More suggestions will come as I think of them.
Smack that thanks button if I helped!
Note 2 LTE powered by Illusion ROM and Plasma Kernel.
Sent from dat small country called Singapore.
P.S. replies with quotes will be replied to faster.
By the way, By 'Monitor the device remotly' I mean basically the same thing I have with my kids tabs. Screen Time (MASSIVE RESPECT TO THIS APP!!!) It monitors what my kids do on their tab and allows me to lock it at certain times and give them chores to earn rewards. NOT the same thing we need here, but, thats the kind of monitoring im thinking. Monitoring medication (pop up reminder and if its not used a remote notification)
Any more ideas you have then let me know, Many thanks for your input
Chris
Cass1977 said:
Good advice, but I feel too many launchers have too many options. the main thing the user needs is simple to access apps. Maybe large icons, etc.My mum likes her news and weather too so simple widgets may help with things like that (A lot are provided with the apps).
TTS will be required too (Text to speech). Maybe an app that will speak highlighted words? Probably have to be built?
By the way, By 'Monitor the device remotly' I mean basically the same thing I have with my kids tabs. Screen Time (MASSIVE RESPECT TO THIS APP!!!) It monitors what my kids do on their tab and allows me to lock it at certain times and give them chores to earn rewards. NOT the same thing we need here, but, thats the kind of monitoring im thinking. Monitoring medication (pop up reminder and if its not used a remote notification)
Any more ideas you have then let me know, Many thanks for your input
Chris
Click to expand...
Click to collapse
I can help test launchers according to what u want and report back. Widgets are easy. (Most news apps has widgets.) There may be some apps for TTS designed for this but it's rare (if not none). (TTS apps are extremely complicated) yea, we might need to build it. (Build from Google voice search, possibility)
OK... I'll have to search it up on Google. (We may have to build from another app...) we can build from Screen Time (add some features into it, we could ask Screen Time's developer for help!)
P.S. I think editing a system file can increase the maximum volume of the sound...
Smack that thanks button if I helped!
Note 2 LTE powered by Illusion ROM and Plasma Kernel.
Sent from dat small country called Singapore.
P.S. replies with quotes will be replied to faster.

Categories

Resources