Hi Ahmad,
(Correct me if I am wrong, Keith) My understanding is that you can absolutely implement cellular congestion controls on Android directly, but it requires learning Android's socket programming (in Java), prevents other researchers from easily reproducing the work, limits the other common libraries or tools such as Mahimahi, etc. In short, it is simply more convenient to implement them using Unix sockets and when it comes to evaluation on cellular networks, you could either tether a laptop to a mobile device or use a LTE dongle.
Porting existing congestion-control schemes to Android is not trivial. The same C/C++ code cannot directly run on Android; you would have to extract the algorithm's essence of the code, compile C/C++ into a native library, and somehow call the functions from Java; by contrast, re-implementing the logic in Java from scratch would probably be easier.
Implementing a congestion-control scheme in the Linux kernel is much harder than in the user space. I wouldn't recommend this route unless you have done this before or are ready to commit a large amount of time. Maybe you want to check out this paper
CCP first.