This is my blog where I post my experiences in my Thesis "Location-aware Traffic Management on Mobile Phones" :
July 5th 2011
Conclusion:
1.The feasibility of augmenting 3G networks with Wi-Fi was
demonstrated
2.There are several locations where 3G and Wi-Fi
connectivity co-exist
3.Around 11% of the data can be offloaded to Wi-Fi in
Chicago and 5% in Fayetteville.
4.The main challenge is using Wi-Fi from moving vehicles.
5.Key to augmenting 3G with Wi-Fi lies in making Wi-Fi more
robust.
June 30th 2011
Part 3 of my thesis:
Collected the speeds and of 3G and Wi-Fi using inetworks
tool and it is interesting to observe that Wi-Fi had twice the speed
of 3G at downtown and residential areas and it was two and half times
at Work place (offices and Labs).
June 15th 2011
Part 2 of my thesis:
Wrote code for uploading a file to the php server. Using this I am going to determine the Wi-fi and 3G speed of my phone. But, I am getting permission denied error while copying a file from my laptop to the data folder. I need to resolve this before I can upload some file from my phone to the php server.
May 14th 2011
I was busy all the month in documenting the first part of my Thesis.
May 3rd 2011
Wrote code for scanning wifi access points. It's running
well.
April 28th 2011
During my trip to Chicago I have observed that there are many
places which didn't have good 3g coverage but had open wifi access
points. This gives me good stuff for the third part of my project.
April 15th 2011
I had to make some changes and divide my thesis into
three parts to make it easy for me
Part1: Collecting gps, data usage, cpu usage and other
statistics of the phone.
part2: Scanning of wifi access points and checking
availability of 3g at various places.
part3: Simulations on whether wifi can be used as an
alternative to 3g at places where there 3g is not available due
to lack of network coverage.
April 8th 2011
Combined them into a single module and wrote a code to
upload those statistics from my phone to a server. These are the
major statistics
Gps
statistics:
{\"data\":{\"com.google.android.apps.maps:10078\":{\"count\":0,\"time\":33581}},\"ver\":\"1.4\",\"type\":\"gps\",\"date\":\"2011-3-7 17:27:32\",\"user\":\"351863047772880\",\"time_stamp\":1302215252340}
Wifi data usage statistics:
{\"data\":{\"gre0:\":{\"recv\":{\"packets\":\"0\",\"bytes\":\"0\"},\"sent\":{\"packets\":\"0\",\"bytes\":\"0\"}},\"tunl0:\":{\"recv\":{\"packets\":\"0\",\"bytes\":\"0\"},\"sent\":{\"packets\":\"0\",\"bytes\":\"0\"}},\"usb0:\":{\"recv\":{\"packets\":\"0\",\"bytes\":\"0\"},\"sent\":{\"packets\":\"0\",\"bytes\":\"0\"}},\"eth0:\":{\"recv\":{\"packets\":\"3648\",\"bytes\":\"386033\"},\"sent\":{\"packets\":\"264\",\"bytes\":\"36497\"}},\"lo:\":{\"recv\":{\"packets\":\"1973\",\"bytes\":\"113656\"},\"sent\":{\"packets\":\"1973\",\"bytes\":\"113656\"}}},\"ver\":\"1.4\",\"type\":\"netdev\",\"date\":\"2011-3-7 17:24:26\",\"user\":\"351863047772880\",\"time_stamp\":1302215066439}
Process statistics (currently running applications):
{\"data\":{\"rild\":3,\"glgps_samsungJu\":71,\"com.android.settings\":7,\"com.sec.android.app.servicemodeapp\":1,\"com.google.android.apps.uploader\":8,\"tvoutserver\":12,\"drexe\":19,\"com.android.phone\":23,\"com.oz.mobile.im.application\":1,\"mmcqd\":22,\"qt602240_wq\":3,\"com.android.calendar\":1,\"com.android.browser\":8,\"sensorserver_ya\":443,\"com.sec.android.provider.logsprovider\":1,\"events/0\":5,\"com.wssyncmldm\":12,\"com.cooliris.media\":1,\"com.google.android.apps.maps\":706,\"pvr_workqueue\":13,\"com.samsung.sec.android.inputmethod.axt9\":2,\"com.android.mms\":9,\"system\":346,\"com.android.samsung.IcsService\":1,\"org.gps\":30,\"pdflush\":9,\"mediaserver\":4,\"com.smlds\":1,\"servicemanager\":2},\"ver\":\"1.4\",\"type\":\"cpu\",\"date\":\"2011-3-7 17:27:30\",\"user\":\"351863047772880\",\"time_stamp\":1302215250483}
{\"data\":{\"com.google.android.apps.maps:10078\":{\"count\":0,\"time\":33581}},\"ver\":\"1.4\",\"type\":\"gps\",\"date\":\"2011-3-7 17:27:32\",\"user\":\"351863047772880\",\"time_stamp\":1302215252340}
Wifi data usage statistics:
{\"data\":{\"gre0:\":{\"recv\":{\"packets\":\"0\",\"bytes\":\"0\"},\"sent\":{\"packets\":\"0\",\"bytes\":\"0\"}},\"tunl0:\":{\"recv\":{\"packets\":\"0\",\"bytes\":\"0\"},\"sent\":{\"packets\":\"0\",\"bytes\":\"0\"}},\"usb0:\":{\"recv\":{\"packets\":\"0\",\"bytes\":\"0\"},\"sent\":{\"packets\":\"0\",\"bytes\":\"0\"}},\"eth0:\":{\"recv\":{\"packets\":\"3648\",\"bytes\":\"386033\"},\"sent\":{\"packets\":\"264\",\"bytes\":\"36497\"}},\"lo:\":{\"recv\":{\"packets\":\"1973\",\"bytes\":\"113656\"},\"sent\":{\"packets\":\"1973\",\"bytes\":\"113656\"}}},\"ver\":\"1.4\",\"type\":\"netdev\",\"date\":\"2011-3-7 17:24:26\",\"user\":\"351863047772880\",\"time_stamp\":1302215066439}
Process statistics (currently running applications):
{\"data\":{\"rild\":3,\"glgps_samsungJu\":71,\"com.android.settings\":7,\"com.sec.android.app.servicemodeapp\":1,\"com.google.android.apps.uploader\":8,\"tvoutserver\":12,\"drexe\":19,\"com.android.phone\":23,\"com.oz.mobile.im.application\":1,\"mmcqd\":22,\"qt602240_wq\":3,\"com.android.calendar\":1,\"com.android.browser\":8,\"sensorserver_ya\":443,\"com.sec.android.provider.logsprovider\":1,\"events/0\":5,\"com.wssyncmldm\":12,\"com.cooliris.media\":1,\"com.google.android.apps.maps\":706,\"pvr_workqueue\":13,\"com.samsung.sec.android.inputmethod.axt9\":2,\"com.android.mms\":9,\"system\":346,\"com.android.samsung.IcsService\":1,\"org.gps\":30,\"pdflush\":9,\"mediaserver\":4,\"com.smlds\":1,\"servicemanager\":2},\"ver\":\"1.4\",\"type\":\"cpu\",\"date\":\"2011-3-7 17:27:30\",\"user\":\"351863047772880\",\"time_stamp\":1302215250483}
February 20th 2011
Divided them into indivual modules and everything is
going well. I collected the usage statistics of my phone
February
10th 2011
The code is running and it is showing the Battery and
wifi usage statistics in logcat and also they are stored in the
database. But I am still trying out to make them as separate
modules. I should even analyze the usage of various
applications.
February
2nd 2011
The previous problem was solved by making some changes
in the .manifest file. Now, i have to split my application into
individual components for individually analyzing the GPS , CPU,
WiFi and Battery usage statistics.
January 27 2011
ooh .. finally fixed the above problem. It occured due to missing of process.java file. With this the errors in all the files are fixed except services file. I have the following errors in this file.
ooh .. finally fixed the above problem. It occured due to missing of process.java file. With this the errors in all the files are fixed except services file. I have the following errors in this file.
January
26 2011
The highlighted fields below cannot be resolved. Although I
created those fields in the R.java file. They still couldn't be
resolved.
if (health == BatteryManager.BATTERY_HEALTH_GOOD)
{
healthString =
getString(R.string.battery_info_health_good);
}
else if (health ==
BatteryManager.BATTERY_HEALTH_OVERHEAT)
{
healthString =
getString(R.string.battery_info_health_overheat);
}
else if (health == BatteryManager.BATTERY_HEALTH_DEAD)
{
healthString =
getString(R.string.battery_info_health_dead);
}
else if (health ==
BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE)
{
healthString =
getString(R.string.battery_info_health_over_voltage);
}
else if (health ==
BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE)
{
healthString =
getString(R.string.battery_info_health_unspecified_failure);
}
else
{
healthString =
getString(R.string.battery_info_health_unknown);
}
if (health == BatteryManager.BATTERY_HEALTH_GOOD)
{
healthString =
getString(R.string.battery_info_health_good);
}
else if (health ==
BatteryManager.BATTERY_HEALTH_OVERHEAT)
{
healthString =
getString(R.string.battery_info_health_overheat);
}
else if (health == BatteryManager.BATTERY_HEALTH_DEAD)
{
healthString =
getString(R.string.battery_info_health_dead);
}
else if (health ==
BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE)
{
healthString =
getString(R.string.battery_info_health_over_voltage);
}
else if (health ==
BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE)
{
healthString =
getString(R.string.battery_info_health_unspecified_failure);
}
else
{
healthString =
getString(R.string.battery_info_health_unknown);
}
January 25th 2011
Had trouble in using Process.PROC_TAB_TERM| Process.PROC_OUT_STRING, They cannot be resolved. I guess it's due to a missing package. I have to to figure out which package is that.
Had trouble in using Process.PROC_TAB_TERM| Process.PROC_OUT_STRING, They cannot be resolved. I guess it's due to a missing package. I have to to figure out which package is that.
January 8th 2011
The android.os.BatteryStats package was very useful for me for accessing the Battery usage statistics. But it's not part of public API. Particularly the method computeBatteryRealtime helped in knowing the battery staistics.
The android.os.BatteryStats package was very useful for me for accessing the Battery usage statistics. But it's not part of public API. Particularly the method computeBatteryRealtime helped in knowing the battery staistics.