Improve the query performance of programs table

Use-cases of quries:
1. In the TV app, the guide fragment will query programs in a specific time range.
2. In the TV app, the channel guide wants to show all the currnet programs for all channels.
3. In the TV app, channel banner will query the current progrom of a specific channel.
4. When TIS adds programs, it might checks if there is any existing programs.

Experimental results:
- # of records : 1.1M programs
- URI used for query : TvContract.buildProgramsUriForChannel(#,start,end)
- Query time : 2700ms => 29.9ms
- Insertion time : 50.9ms => 51.4ms
- Bulk insertion time - 100 programs : 570.7ms => 643.7ms
- Update time : 53.4ms => 51.3ms
- Deletion time : 56.4ms => 60.6ms
- DB size : 408MB => 503MB (~20% increase)

Bug: 17514090, Bug: 16858261
Change-Id: Ia3cb9d8a4c7e96687c001575a890319aadbe9398
1 file changed
tree: 3af3eb62e1f48ff1bebc565cc6982421d9de2645
  1. res/
  2. src/
  3. tests/
  4. Android.mk
  5. AndroidManifest.xml