How to improve WebView on Android Eclaire? - android

I have an old device (Nook Simple Touch). It based on Android 2.1. I am writing simple application for this device (only for personal usage). This application is a WebView linked to special WEB-site. Site was build using JQuery Mobile.
I get a trouble with it. WebView on this device is not perfect and shows some elements incorrectly. New versions of WebView works well.
Is it possible to improve WebView on old version of Android? May be here is a way to upgrade it or i can use some library for it?

Unfortunately, there's nothing WebView related you can do here.
jQuery Mobile performs badly on Android systems below 2.3
To be more specific, jQuery Mobile performs badly on Android systems below 4.0, however, performance drops even further if Android 2.2 and below is used.
On Android 4.0 you could have used Crosswalk to make your application faster, however, it is limited to Android 4+.
The good news is you are not out of possibilities.
CSS3 is the main reason jQuery Mobile performs purely on Android 2.X devices. You can disable jQuery Mobile styling and do it on your own making sure not to use or overuse CSS3, especially CSS3 drop shadows.
Another possibility would be to upgrade the Android version. Unfortunately, an official upgrade was never released nor there was a custom ROM on XDA developers.

Related

Is there a minimum Android version for supporting inappbrowser?

Our Phonegap app using inappbrowser works really well on every device tested except one using Android version 4.3 where the CSS seems unresponsive and the onscreen keyboard doesn't pop up when you tap in text fields. I can't seem to find any documentation on minimum versions of Android for supporting the various Phonegap plugins.
From my experience, I've used phonegap a far as Android 2.1 . The problem you could have on such older versions is the phonegap version.
You should provide further information such as phonegap version.
But I can assure you that Android 4.3 has a very broad support for all Phonegap/Cordova 5+ plugins.
If I were you I wolud try updating phonegap version according to your desire of minimum Android version you want your app to be executed on.
For example, until Android 2.3 on inappbrowser apps it wasn't able to use overflow scroll, so you had to use an external plugin to get that effect, which was really annoying.
Hope this helps.
Without any code it's hard to diagnose, but it might be a browser issue: Android 4.3 does not necessarily ship with Chrome, so it might be still running the old "Android Browser", which does not support all (CSS-)features Chrome supports. Caniuse helps to find out if a browser supports a certain feature.
If it's indeed a browser issue and you have to support older browsers like the Android Browser, you might want to check out Crosswalk. It provides a recent version of Chrome as a WebView and as InAppBrowser with consistent behaviour on all Android 4.x devices. Downside: Your app's size will increase...
If it's not the browser you might need to show us some of your code.

Is Android + PhoneGap/Cordova always a headache?

I've been developing a mobile app for both iOS and Android. Due to time/budget constraints, we initially selected PhoneGap/Cordova as mobile app framework so we could write once and deploy to both platforms.
This plan has worked fine for iOS, but we're finding that Android's browser/engine is kind-of a piece of garbage (to put it nicely). Every time we add a new feature, we find one more thing that the Android browser doesn't support, or only partially supports, or fully supports but will randomly fail from time to time, etc. Even once we code around the Android issues and get things working smoothly, test it on multiple devices/versions, and deploy a new app to the Android market, we immediately start getting emails and reports from customers who can't get the app to work on their device. We have them uninstall/reinstall, reboot their phone to clear the memory, etc., and their device still consistently fails (and by "fail", I mean it typically just freezes and/or won't respond to touch input - it usually doesn't crash, or anything). The app works fine for most people, but there are still quite a few devices that inexplicably fail.
I don't mean for this to be a rant, I'm trying to analyze whether the Android+PhoneGap path is the correct path for us. Specifically, I'd like to find out the following:
Are there people out there having success with an Android+PhoneGap app? or is Android+PhoneGap always going to be a problem on certain devices?
Am I likely to have more luck with a native Android app (I've never attempted one)? Or are multiple devices/versions always a problem on Android, even with a Native app?
1) Yes. There are are good apps which are based on Phonegap and works well in all devices.
2) It depends on what features of the Android you are going to use. Few versions that does not support some features that's available only to new version.
BTW, what is the minimum required version that you have selected for your app? I assume you are developing the app with Android as base version.
When creating a new Android project, you have to set the minimum required platform version. If you set something higher and use the app in a lower version which does not support the feature, results are going to be different.
After having worked with Android+Cordova for some time now, I have the following suggestions/comments for anyone thinking of going that direction.
Consider using Sencha Touch, or jQuery Mobile, or another mobile framework that has already coded around the Android-browser issues (which there are a LOT of). Consider not straying too far from the default styling that come with those frameworks. Simply styling a normal web page to look like a mobile app is a constant headache to get working on multiple versions of the stock Android browser.
Although the stock Android browser is garbage, Mobile Chrome is pretty nice. In Android 4.4, the Chrome engine becomes the default engine used by a webview of an Android app. If you don't like Sencha or jQuery Mobile or the like, you could hold off and just use a mobile web site for a while until Android 4.3 and below become insignificant. It's not hard to get things working on Mobile Chrome.
Even without Sencha/JQM, you can still muscle your way around the stock browser issues, but it's almost as frustrating as developing for IE6. Okay, maybe not that bad… but close.
I've started experimenting some with a native Android app, and, so far, it seems like less of a headache than building an app with Android+Cordova+lackOfSenchaOrJQMorTheLike. The things I've experimented with work pretty consistently among different Android versions. But I don't have much experience there, so I can't comment too much on a native Android app.

Using WebGL in native Android App

I need to make a 3D animation across the web, android and iOS platforms. My question is, is it possible to use WebGL to make the animations in native android and iOS apps? As I would write the animation once and it would in theory port to the android and iOS with out any problems or am I going to have to simply use the OpenGL ES to make the animations for the mobile devices and webGL for the web.
Disclaimer: I work for ludei
So, that's exactly what a company called ludei is preparing to launch ;)
We have it working on Android 2.3 (even on a Nexus One!) through 4.2, and iOS 4 (I think?) and up. We don't rely on the system browsers or webviews, so there are no "private libraries" problems, and we support versions of Android that can't have WebGL otherwise.
We're giving it the final touches now, but we should be able to release it in a few weeks :)
Check out http://impactjs.com/ for iOS they are allowing you to use threeJS //asmallgame.com/labsopen/webgl_impact/ right now for Android it is only supported on Chrome Beta and you have to enable the flag http://thenextweb.com/google/2013/01/25/google-finally-makes-it-easy-to-enable-webgl-support-in-latest-chrome-for-android-beta/ I would expect webGL to be fully supported with key lime pie version of android coming out soon. Also you can hack the iAd platform to support it on iOS but you will not get it through the app store due to using private libraries. github.com/benvanik/WebGLBrowser also be aware of github.com/kripken/emscripten because firefox recently came out with asmJS on odin monkey techcrunch.com/2013/03/21/firefox-nightly-now-includes-odinmonkey-brings-javascript-performance-closer-to-running-at-native-speeds/ this enabled firefox to port over unreal engine to webgl in only a few days at the last GDC so hopefully chrome and other browser start supporting asmJS for the obvious speed boost. techcrunch.com/2013/03/27/mozilla-and-epic-games-bring-unreal-engine-3-to-the-web-no-plugin-needed/
WebGL is not fully supported on all browsers, however both Android and iOS have native OpenGL views that can be used (and will provide a much faster experience than WebGL). Once your environments are set up for each platform, using the same code will be mostly trivial.
Although cocos2d-x does not support 3D animations, its documentation may help you get started for cross-platform apps using openGL.

Sencha touch + phonegap in android

I need to develop an app in Sencha touch and phonegap in android.I got decent performance in iphone.Does it produce good performance in Android?
Use sencha touch 2 for android. They have improved the performance significantly and also resolved most of the issues on android. To use phonegap you need android 2.2 so most of the devices that have this OS have good performance so you should be ok.
It'll depend on the device.
In my experience web apps don't perform any where near as well on Android as they do on iPhone. Specifically, many Android devices don't support hardware acceleration on the web which can make transitions between pages jerky, and scrolling panes rather slow. An app which looks and performs great on iPhone can look a little 'retro' on some Android devices. I'm sure there are newer, faster Android devices I haven't tried which are much better though!
Make sure you can get hold of some real devices to test on.
Well I just started using Sencha and Phonegap, it looks good especially if you need a quick solution.
Using the Eclipse IDE - http://developer.android.com/sdk/eclipse-adt.html
Phonegap Plugin (helps quickly package Sencha and Phonegap libraries) - http://wiki.phonegap.com/w/page/34483744/PhoneGap%20Eclipse%20PlugIn%20for%20Android

Integrate WebGL in android app

I have android app which works fine. And now I want to add some graphical features using WebGL ,but I have not a lot of experience in 3d, especially in android. I need suggestion that how would be worked my android app (I mean performance) after integrating this new feature?
And also I'd like to know in my app can I use "WebGL code", which works fine for pc browsers?
Your question is a little unclear. It sounds to me as if you have a native Android app that you want to add 3D content to. If so, WebGL is maybe not your best bet.
WebGL is a interface to OpenGL that works through a web browser, coded with Javascript. While you can convince some mobile devices to work with it, it's typically not available through most mobile web browsers. That may change in the near future, but it's anyone's guess as to exactly when. Point being, WebGL is not a viable target for phones right now.
If you have a native Android app though (coded with Java), you can access OpenGL ES 2.0. Capability wise it's identical to WebGL, but you can access it through the platforms native language, which will typically lead to better performance. If you have a WebGL app, it should be pretty straightforward to port to Android since the APIs are largely equivalent.
If you want to start using OpenGL in your Android app, the documentation is here.
Chrome experiments now have a section for mobile https://www.chromeexperiments.com/mobile.
Though you can play wide range of webGL examples in android chrome browser by enabling webgl as shown in pic below :-
This way you would be able to use webgl in chrome browser :-
Unfortunately old WebView does not support webGL but WebView V36 does have webGL support . You can openGL for similar purpose.

Categories

Resources