[android-developers] Re: Proper way of importing contacts to the device/contacts operations are very slow

2010-03-29 Thread cpphool
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

2010-03-29 Thread Nithin
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

2010-03-29 Thread cpphool
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

2010-03-23 Thread cpphool
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

2010-03-23 Thread timo prill

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.