[android-developers] Re: Proper way of importing contacts to the device/contacts operations are very slow
thank you for your response! Unfortunately this method took even longer - 31sec on Magic. On 23 Mar, 15:50, timo prill timo.pr...@googlemail.com wrote: hey, try this. maybe its a faster approach to go directly through the ContentResolver instead of using createPersonInMyContactsGroup: ContentValues values = new ContentValues(); Uri uri; String id; ContentResolver cr = getContentResolver (); for (int i = 0; i 100; i++) { values.clear(); values.put(People.NAME, Test + i); uri = cr.insert(People.CONTENT_URI, values); id = uri.getLastPathSegment(); People.addToMyContactsGroup(cr, Long.parseLong(id)); } cheers. cpphool schrieb: Hi! Currently, I'm using HTC Magic (1.5) and Acer Liquid (1.6) to test the app. my sample code snippet for API 2.0: for (int i = 0; i 100; i++) { Log.d(TAG,iteracja + i); ContentValues personValues = new ContentValues(); personValues.put(Contacts.People.NAME, Test + i); personValues.put(Contacts.People.STARRED, 0); Uri newPersonUri = Contacts.People.createPersonInMyContactsGroup(getContentResolver(), personValues); } I did a few tests. Each time I changed NAME String in order to avoid duplicates. Results: 1) Acer Liquid (sync off) - 12 sec 2) Acer Liquid (sync on) - 30 sec 3) Acer Liquid (sync on) - 55 sec 4) Acer Liquid (sync on) - 35 sec 5) Acer Liquid (sync off) - 13 sec 1) HTC Magic (sync off) - 27 sec 2) HTC Magic (sync off) - stuck. log from logcat: ERROR/CursorWindow(13459): need to grow: mSize = 1048576, size = 279, freeSpace() = 162, numRows = 2789 ERROR/CursorWindow(13459): not growing since there are already 2789 row(s), max size 1048576 ERROR/CursorWindow(13459): The row failed, so back out the new row accounting from allocRowSlot 2788 ERROR/Cursor(13459): Failed allocating fieldDir at startPos 0 row 2788 DEBUG/Cursor(13459): finish_program_and_get_row_count row 2213 then I turned the sync off and my application started running again (without restarting the app)! took 30 sec to complete. Even if we turn off sync on HTC Magic it takes a long time to simply add empty contacts. Adding 5000 empty contacts (without any other operations) would take 1500sec = 25min. On 23 Mar, 11:55, timo prill timo.pr...@googlemail.com wrote: hi, which SDK version are you using? 1.5? 1.6? 2.0? 2.1? there were some changes to the contact api from 1.6 to 2.0... and maybe give a short snippet of how you insert the contacts to the database. maybe you do some (wrong) very time-consuming database-queries or you just missed something, because i have seen my code using the contact db implementation run way faster.. even with vcard-parsing full blown contacts...on the htc magic cheers cpphool schrieb: Hi! I have some questions concerning importing contacts to the device, which is extremely slow. First of all, if you delete all your contacts, google sync will restore it very quickly. However, when my app is adding contacts to the device, it's very slow (a few contacts per second). Even if I add almost empty contacts (with name only), it is a time-consuming process. If I turn google sync off, importing 5000 contacts can take 1-2 hours (on HTC Magic). When google sync is on it can take up to 24hours. And this happens despite the fact, that application for the whole time is in the foreground, device is connected to charger and screen is on. I checked the logcat to make sure my app is adding the contacts the whole time, and it is. I tried different methods and different devices. The results differ of course, yet manually adding contacts is always significantly slower that google sync. Is there any way that I can speed up the process? So that importing 5000 contacts will take less than an hour. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en To unsubscribe from this group, send email to android-developers+unsubscribegooglegroups.com or reply to this email with the words REMOVE ME as the subject.
[android-developers] Re: Proper way of importing contacts to the device/contacts operations are very slow
Use AsyncTask to update the contacts . Nithin On Mar 29, 2:56 pm, cpphool cpph...@gmail.com wrote: thank you for your response! Unfortunately this method took even longer - 31sec on Magic. On 23 Mar, 15:50, timo prill timo.pr...@googlemail.com wrote: hey, try this. maybe its a faster approach to go directly through the ContentResolver instead of using createPersonInMyContactsGroup: ContentValues values = new ContentValues(); Uri uri; String id; ContentResolver cr = getContentResolver (); for (int i = 0; i 100; i++) { values.clear(); values.put(People.NAME, Test + i); uri = cr.insert(People.CONTENT_URI, values); id = uri.getLastPathSegment(); People.addToMyContactsGroup(cr, Long.parseLong(id)); } cheers. cpphool schrieb: Hi! Currently, I'm using HTC Magic (1.5) and Acer Liquid (1.6) to test the app. my sample code snippet for API 2.0: for (int i = 0; i 100; i++) { Log.d(TAG,iteracja + i); ContentValues personValues = new ContentValues(); personValues.put(Contacts.People.NAME, Test + i); personValues.put(Contacts.People.STARRED, 0); Uri newPersonUri = Contacts.People.createPersonInMyContactsGroup(getContentResolver(), personValues); } I did a few tests. Each time I changed NAME String in order to avoid duplicates. Results: 1) Acer Liquid (sync off) - 12 sec 2) Acer Liquid (sync on) - 30 sec 3) Acer Liquid (sync on) - 55 sec 4) Acer Liquid (sync on) - 35 sec 5) Acer Liquid (sync off) - 13 sec 1) HTC Magic (sync off) - 27 sec 2) HTC Magic (sync off) - stuck. log from logcat: ERROR/CursorWindow(13459): need to grow: mSize = 1048576, size = 279, freeSpace() = 162, numRows = 2789 ERROR/CursorWindow(13459): not growing since there are already 2789 row(s), max size 1048576 ERROR/CursorWindow(13459): The row failed, so back out the new row accounting from allocRowSlot 2788 ERROR/Cursor(13459): Failed allocating fieldDir at startPos 0 row 2788 DEBUG/Cursor(13459): finish_program_and_get_row_count row 2213 then I turned the sync off and my application started running again (without restarting the app)! took 30 sec to complete. Even if we turn off sync on HTC Magic it takes a long time to simply add empty contacts. Adding 5000 empty contacts (without any other operations) would take 1500sec = 25min. On 23 Mar, 11:55, timo prill timo.pr...@googlemail.com wrote: hi, which SDK version are you using? 1.5? 1.6? 2.0? 2.1? there were some changes to the contact api from 1.6 to 2.0... and maybe give a short snippet of how you insert the contacts to the database. maybe you do some (wrong) very time-consuming database-queries or you just missed something, because i have seen my code using the contact db implementation run way faster.. even with vcard-parsing full blown contacts...on the htc magic cheers cpphool schrieb: Hi! I have some questions concerning importing contacts to the device, which is extremely slow. First of all, if you delete all your contacts, google sync will restore it very quickly. However, when my app is adding contacts to the device, it's very slow (a few contacts per second). Even if I add almost empty contacts (with name only), it is a time-consuming process. If I turn google sync off, importing 5000 contacts can take 1-2 hours (on HTC Magic). When google sync is on it can take up to 24hours. And this happens despite the fact, that application for the whole time is in the foreground, device is connected to charger and screen is on. I checked the logcat to make sure my app is adding the contacts the whole time, and it is. I tried different methods and different devices. The results differ of course, yet manually adding contacts is always significantly slower that google sync. Is there any way that I can speed up the process? So that importing 5000 contacts will take less than an hour. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en To unsubscribe from this group, send email to android-developers+unsubscribegooglegroups.com or reply to this email with the words REMOVE ME as the subject.
[android-developers] Re: Proper way of importing contacts to the device/contacts operations are very slow
Can you give us some example? As I understand, AsynTask is used for threading. How should I use it to improve speed? I suppose I could create an AsyncTask with a method doInBackground(). This method would add only one contact at a time. Then, I call execute a hundred times. Is this what you mean? I will appreciate any more information :) On 29 Mar, 12:26, Nithin nithin.war...@gmail.com wrote: Use AsyncTask to update the contacts . Nithin On Mar 29, 2:56 pm, cpphool cpph...@gmail.com wrote: thank you for your response! Unfortunately this method took even longer - 31sec on Magic. On 23 Mar, 15:50, timo prill timo.pr...@googlemail.com wrote: hey, try this. maybe its a faster approach to go directly through the ContentResolver instead of using createPersonInMyContactsGroup: ContentValues values = new ContentValues(); Uri uri; String id; ContentResolver cr = getContentResolver (); for (int i = 0; i 100; i++) { values.clear(); values.put(People.NAME, Test + i); uri = cr.insert(People.CONTENT_URI, values); id = uri.getLastPathSegment(); People.addToMyContactsGroup(cr, Long.parseLong(id)); } cheers. cpphool schrieb: Hi! Currently, I'm using HTC Magic (1.5) and Acer Liquid (1.6) to test the app. my sample code snippet for API 2.0: for (int i = 0; i 100; i++) { Log.d(TAG,iteracja + i); ContentValues personValues = new ContentValues(); personValues.put(Contacts.People.NAME, Test + i); personValues.put(Contacts.People.STARRED, 0); Uri newPersonUri = Contacts.People.createPersonInMyContactsGroup(getContentResolver(), personValues); } I did a few tests. Each time I changed NAME String in order to avoid duplicates. Results: 1) Acer Liquid (sync off) - 12 sec 2) Acer Liquid (sync on) - 30 sec 3) Acer Liquid (sync on) - 55 sec 4) Acer Liquid (sync on) - 35 sec 5) Acer Liquid (sync off) - 13 sec 1) HTC Magic (sync off) - 27 sec 2) HTC Magic (sync off) - stuck. log from logcat: ERROR/CursorWindow(13459): need to grow: mSize = 1048576, size = 279, freeSpace() = 162, numRows = 2789 ERROR/CursorWindow(13459): not growing since there are already 2789 row(s), max size 1048576 ERROR/CursorWindow(13459): The row failed, so back out the new row accounting from allocRowSlot 2788 ERROR/Cursor(13459): Failed allocating fieldDir at startPos 0 row 2788 DEBUG/Cursor(13459): finish_program_and_get_row_count row 2213 then I turned the sync off and my application started running again (without restarting the app)! took 30 sec to complete. Even if we turn off sync on HTC Magic it takes a long time to simply add empty contacts. Adding 5000 empty contacts (without any other operations) would take 1500sec = 25min. On 23 Mar, 11:55, timo prill timo.pr...@googlemail.com wrote: hi, which SDK version are you using? 1.5? 1.6? 2.0? 2.1? there were some changes to the contact api from 1.6 to 2.0... and maybe give a short snippet of how you insert the contacts to the database. maybe you do some (wrong) very time-consuming database-queries or you just missed something, because i have seen my code using the contact db implementation run way faster.. even with vcard-parsing full blown contacts...on the htc magic cheers cpphool schrieb: Hi! I have some questions concerning importing contacts to the device, which is extremely slow. First of all, if you delete all your contacts, google sync will restore it very quickly. However, when my app is adding contacts to the device, it's very slow (a few contacts per second). Even if I add almost empty contacts (with name only), it is a time-consuming process. If I turn google sync off, importing 5000 contacts can take 1-2 hours (on HTC Magic). When google sync is on it can take up to 24hours. And this happens despite the fact, that application for the whole time is in the foreground, device is connected to charger and screen is on. I checked the logcat to make sure my app is adding the contacts the whole time, and it is. I tried different methods and different devices. The results differ of course, yet manually adding contacts is always significantly slower that google sync. Is there any way that I can speed up the process? So that importing 5000 contacts will take less than an hour. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en To unsubscribe from this
[android-developers] Re: Proper way of importing contacts to the device/contacts operations are very slow
Hi! Currently, I'm using HTC Magic (1.5) and Acer Liquid (1.6) to test the app. my sample code snippet for API 2.0: for (int i = 0; i 100; i++) { Log.d(TAG,iteracja + i); ContentValues personValues = new ContentValues(); personValues.put(Contacts.People.NAME, Test + i); personValues.put(Contacts.People.STARRED, 0); Uri newPersonUri = Contacts.People.createPersonInMyContactsGroup(getContentResolver(), personValues); } I did a few tests. Each time I changed NAME String in order to avoid duplicates. Results: 1) Acer Liquid (sync off) - 12 sec 2) Acer Liquid (sync on) - 30 sec 3) Acer Liquid (sync on) - 55 sec 4) Acer Liquid (sync on) - 35 sec 5) Acer Liquid (sync off) - 13 sec 1) HTC Magic (sync off) - 27 sec 2) HTC Magic (sync off) - stuck. log from logcat: ERROR/CursorWindow(13459): need to grow: mSize = 1048576, size = 279, freeSpace() = 162, numRows = 2789 ERROR/CursorWindow(13459): not growing since there are already 2789 row(s), max size 1048576 ERROR/CursorWindow(13459): The row failed, so back out the new row accounting from allocRowSlot 2788 ERROR/Cursor(13459): Failed allocating fieldDir at startPos 0 row 2788 DEBUG/Cursor(13459): finish_program_and_get_row_count row 2213 then I turned the sync off and my application started running again (without restarting the app)! took 30 sec to complete. Even if we turn off sync on HTC Magic it takes a long time to simply add empty contacts. Adding 5000 empty contacts (without any other operations) would take 1500sec = 25min. On 23 Mar, 11:55, timo prill timo.pr...@googlemail.com wrote: hi, which SDK version are you using? 1.5? 1.6? 2.0? 2.1? there were some changes to the contact api from 1.6 to 2.0... and maybe give a short snippet of how you insert the contacts to the database. maybe you do some (wrong) very time-consuming database-queries or you just missed something, because i have seen my code using the contact db implementation run way faster.. even with vcard-parsing full blown contacts...on the htc magic cheers cpphool schrieb: Hi! I have some questions concerning importing contacts to the device, which is extremely slow. First of all, if you delete all your contacts, google sync will restore it very quickly. However, when my app is adding contacts to the device, it's very slow (a few contacts per second). Even if I add almost empty contacts (with name only), it is a time-consuming process. If I turn google sync off, importing 5000 contacts can take 1-2 hours (on HTC Magic). When google sync is on it can take up to 24hours. And this happens despite the fact, that application for the whole time is in the foreground, device is connected to charger and screen is on. I checked the logcat to make sure my app is adding the contacts the whole time, and it is. I tried different methods and different devices. The results differ of course, yet manually adding contacts is always significantly slower that google sync. Is there any way that I can speed up the process? So that importing 5000 contacts will take less than an hour. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en To unsubscribe from this group, send email to android-developers+unsubscribegooglegroups.com or reply to this email with the words REMOVE ME as the subject.
Re: [android-developers] Re: Proper way of importing contacts to the device/contacts operations are very slow
hey, try this. maybe its a faster approach to go directly through the ContentResolver instead of using createPersonInMyContactsGroup: ContentValues values = new ContentValues(); Uri uri; String id; ContentResolver cr = getContentResolver (); for (int i = 0; i 100; i++) { values.clear(); values.put(People.NAME, Test + i); uri = cr.insert(People.CONTENT_URI, values); id = uri.getLastPathSegment(); People.addToMyContactsGroup(cr, Long.parseLong(id)); } cheers. cpphool schrieb: Hi! Currently, I'm using HTC Magic (1.5) and Acer Liquid (1.6) to test the app. my sample code snippet for API 2.0: for (int i = 0; i 100; i++) { Log.d(TAG,iteracja + i); ContentValues personValues = new ContentValues(); personValues.put(Contacts.People.NAME, Test + i); personValues.put(Contacts.People.STARRED, 0); Uri newPersonUri = Contacts.People.createPersonInMyContactsGroup(getContentResolver(), personValues); } I did a few tests. Each time I changed NAME String in order to avoid duplicates. Results: 1) Acer Liquid (sync off) - 12 sec 2) Acer Liquid (sync on) - 30 sec 3) Acer Liquid (sync on) - 55 sec 4) Acer Liquid (sync on) - 35 sec 5) Acer Liquid (sync off) - 13 sec 1) HTC Magic (sync off) - 27 sec 2) HTC Magic (sync off) - stuck. log from logcat: ERROR/CursorWindow(13459): need to grow: mSize = 1048576, size = 279, freeSpace() = 162, numRows = 2789 ERROR/CursorWindow(13459): not growing since there are already 2789 row(s), max size 1048576 ERROR/CursorWindow(13459): The row failed, so back out the new row accounting from allocRowSlot 2788 ERROR/Cursor(13459): Failed allocating fieldDir at startPos 0 row 2788 DEBUG/Cursor(13459): finish_program_and_get_row_count row 2213 then I turned the sync off and my application started running again (without restarting the app)! took 30 sec to complete. Even if we turn off sync on HTC Magic it takes a long time to simply add empty contacts. Adding 5000 empty contacts (without any other operations) would take 1500sec = 25min. On 23 Mar, 11:55, timo prill timo.pr...@googlemail.com wrote: hi, which SDK version are you using? 1.5? 1.6? 2.0? 2.1? there were some changes to the contact api from 1.6 to 2.0... and maybe give a short snippet of how you insert the contacts to the database. maybe you do some (wrong) very time-consuming database-queries or you just missed something, because i have seen my code using the contact db implementation run way faster.. even with vcard-parsing full blown contacts...on the htc magic cheers cpphool schrieb: Hi! I have some questions concerning importing contacts to the device, which is extremely slow. First of all, if you delete all your contacts, google sync will restore it very quickly. However, when my app is adding contacts to the device, it's very slow (a few contacts per second). Even if I add almost empty contacts (with name only), it is a time-consuming process. If I turn google sync off, importing 5000 contacts can take 1-2 hours (on HTC Magic). When google sync is on it can take up to 24hours. And this happens despite the fact, that application for the whole time is in the foreground, device is connected to charger and screen is on. I checked the logcat to make sure my app is adding the contacts the whole time, and it is. I tried different methods and different devices. The results differ of course, yet manually adding contacts is always significantly slower that google sync. Is there any way that I can speed up the process? So that importing 5000 contacts will take less than an hour. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en To unsubscribe from this group, send email to android-developers+unsubscribegooglegroups.com or reply to this email with the words REMOVE ME as the subject.