Hi! I am using kendo UI listview for listing data in my Phonegap application. For android, I set hardware acceleration="false" in my android manifest file. < application android:hardwareAccelerated="false" > It made a huge difference in performance. How can I do this in iOS?
On Mon, Mar 17, 2014 at 8:19 PM, Ami Gandhi <[email protected]> wrote: > I have solved this issue by this: > > Android Code: To create view. > > Database db = server.getDatabase(strDbName); > db.open(); > listenPort = startCBLListener(DEFAULT_LISTEN_PORT, server); > > View v1 = db.getView(String.format("%s/%s", > strDbName, > "getrecords_typewise")); > > //Here strDbName = database name, "getrecords_typewise" = View name. > > v1.setMap(new Mapper() > { > @Override > public void map(Map<String, Object> document, Emitter emitter) > { > Object docType = document.get("type"); > if (docType != null && document.get("is_active") != null && > document.get("is_active").equals(true)) > { > emitter.emit(new Object[]{docType.toString()}, document); > } > } > }, strVersion); > db.registerView(v1); > > Phonegap Code: > config.views(["getrecords_typewise", { > startkey : ["contact"], > endkey : ["contact"], > descending : true > }], function(err, view) > { > > var len = view['rows'].length; > > var counter=0; > var data=[]; > if(view['rows']!=null && view['rows'].length>0){ > for(j=0;j<view['rows'].length;j++) > { > data.push(view['rows'][j].value); > } > } > > }); > > > On Sat, Feb 15, 2014 at 6:05 AM, Traun Leyden <[email protected]>wrote: > >> >> >> On Thursday, February 13, 2014, Ami Gandhi <[email protected]> wrote: >> >>> >>> >>> But calling view from Phonegap is very slow! >>> Having this logs all the time. >>> 02-14 00:45:05.685: D/dalvikvm(6462): WAIT_FOR_CONCURRENT_GC blocked 14ms >>> 02-14 00:45:05.715: V/CBLDatabase(6462): call map for sequence=14 >>> 02-14 00:45:05.750: D/dalvikvm(6462): GC_CONCURRENT freed 492K, 27% free >>> 13190K/17863K, paused 2ms+2ms, total 23ms >>> >> >> Have you taken a look at the Android Monitor / DDMS to see where the >> memory is being used? >> >> >>> >>> So, moving on native approach. >>> >> >> Did you follow the instructions from Daniel Carr above? Did you comment >> out the call to "CBLView.setCompiler(new CBLJavaScriptViewCompiler());" >> >> Another thing that could be going wrong, are you defining a view with the >> exact same name for the javascript based view you defined? I would >> recommend using a different name so they don't conflict. >> >> >> >>> But it is not working when I call view "amiview" from phonegap. >>> >> >> Is there an error message? >> >> >> >> >>> On Thursday, February 13, 2014 11:21:18 PM UTC+5:30, Traun Leyden wrote: >>>> >>>> >>>> I think there should be examples of that in https://github.com/ >>>> couchbaselabs/TodoLite-PhoneGap. >>>> >>>> It should essentially be the same as making a view query via REST to >>>> CouchDB, so you can also check the CouchDB docs. >>>> >>>> @Chris -- I guess the recommended js library for talking to Couchbase >>>> Lite from javascript is "coax/hoax" right? Is there any others that people >>>> should be aware of that will make their lives easier? >>>> >>>> On Thursday, February 13, 2014, Ami Gandhi <[email protected]> wrote: >>>> >>>> Hi! >>>> Can you tell me how to query CBLView from phonegap android? >>>> Also, how to set startkey and endkey? >>>> >>>> On Monday, October 21, 2013 11:28:38 PM UTC+5:30, Traun Leyden wrote: >>>> >>>> Thanks for contributing this! >>>> >>>> >>>> On Sun, Oct 20, 2013 at 5:16 PM, Daniel Carr <[email protected]>wrote: >>>> >>>> Thanks for your replies. >>>> >>>> If anyone is keen to try this, it's pretty easy. I know very little >>>> java and was able to work it out, and the performance is way better. >>>> >>>> >>>> To get it to work, clone the git repo and import the modified cloned >>>> repo as a phonegap plugin: >>>> >>>> git clone https://github.com/couchbaselabs/Couchbase-Lite-PhoneGap- >>>> Plugin.git >>>> cd project >>>> phonegap local plugin add ../Couchbase-List-PhoneGap-Plugin >>>> >>>> >>>> Every time you modify the plugin, you need to remove and add it again. >>>> >>>> phonegap local plugin remove com.couchbase.lite.phonegap >>>> phonegap local plugin add ../Couchbase-List-PhoneGap-Plugin >>>> >>>> >>>> >>>> As a proof of concept, I edited /src/android/CBLite.java file in >>>> Cordova-Lite-PhoneGap-Plugin. >>>> >>>> Add these to the imports: >>>> >>>> import com.couchbase.cblite.CBLDatabase; >>>> import com.couchbase.cblite.CBLViewMapBlock; >>>> import com.couchbase.cblite.CBLViewMapEmitBlock; >>>> >>>> >>>> Remove the Javascript View thingy: >>>> >>>> - CBLView.setCompiler(new >>>> CBLJavaScriptViewCompiler()); >>>> >>>> >>>> >>>> Declare a view as described here: http://docs.couchbase.co >>>> m/couchbase-lite/cbl-android/#working-with-views >>>> >>>> >>>> >>>> e.g.: (sorry about the dodgy tabulation) >>>> >>>> >>>> @@ -41,12 +45,25 @@ public class CBLite extends CordovaPlugin { >>>> >>>> CBLURLStreamHandlerFactory.reg >>>> isterSelfIgnoreError(); >>>> >>>> - CBLView.setCompiler(new >>>> CBLJavaScriptViewCompiler()); >>>> - >>>> String filesDir = this.cordova.getActivity(). >>>> getFilesDir() >>>> .getAbsolutePath(); >>>> CBLServer server = startCBLite(filesDir); >>>> - >>>> + >>>> + CBLDatabase db = server.getDatabaseNamed("treat >>>> ment"); >>>> + CBLView testView = db.getViewNamed("ivetTest/ >>>> test"); >>>> + testView.setMapReduceBlocks(new >>>> CBLViewMapBlock() { >>>> + >>>> + @Override >>>> + public void map(Map<String, Object> document, >>>> CBLViewMapEmitBlock emitter) { >>>> + String type = (String)document.get("Type"); >>>> + if( "TreatmentRecord".equals( >>>> >>>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Couchbase Mobile" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/mobile-couchbase/bc488580-9fab-4f22-8a51-a0bc697e931f%40googlegroups.com >>> . >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >> -- >> You received this message because you are subscribed to a topic in the >> Google Groups "Couchbase Mobile" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/mobile-couchbase/lAt7w3ntbKo/unsubscribe >> . >> To unsubscribe from this group and all its topics, send an email to >> [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/mobile-couchbase/CACSSHCHskg2tQ2ce8TckCh0j0PFZ314aidUP6UfztFhn2%3DqwVg%40mail.gmail.com >> . >> >> For more options, visit https://groups.google.com/groups/opt_out. >> > > -- You received this message because you are subscribed to the Google Groups "Couchbase Mobile" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/mobile-couchbase/CALA2sAbAO1aZyVrks%3Dyv7OrWwG3zeP199XsCM8joHfOZetd%3D6Q%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
