At first, you need to get a list of events with perf list. I have no experience with android, so, if you can, please, show most interesting part of this list.
1) -c is count of event between the samples will be taken. (only count'th event is sampled, 1 is to sample all and 100000 is to sample every 100000th event) E.g. if there is an event for cpu tick (smth like TSC), then count is number of ticks, and I recommend you to set sampling to be done not more often than 1 millisecond. To get tick count, use formula: CPU_Freq_in_MHz * 1000. This is a count of events to get sample each millisecond, e.g. for 800 MHz CPU and tick event use -c 800000.
For other events you should estimate, how often will they done. If you don't know, you can start from the count value for ticks, and then check is enough samples were collected. If not, lower the count ten times and check again. The count for ticks will be safe, because the tick is one of the most often event in any CPU.
2) The good rate is different for various PMU, which is selected with "-e" or "--event=" option. If the event is rare, not more 1000 per second, you can sample even each event. If the event is like cache miss, you should try several variants, because the good value is depends on the code sampled. Too low sampling rate will give you small number of samples and results will be not dependable and noisy. But for too high rate the results will be noised too, because every PMU can affect the program traced. I recommend you to use not more than 1000 events per second in average.