源码环境有什么用?什么是android.mk?什么是jni?解决办法

源码环境有什么用?什么是android.mk?什么是jni?
什么jni呢?  
这个是看android ndk关于android.mk的时候看到的  



另外,我看到说"android源码编译环境",这个有什么用呢?
还有关于android隐藏api的问题,我能从哪里知道都有哪些隐藏api/类

主要是,能不能帮我解答一下,android.mk是什么时候,做什么用的..
是linux环境下? 
源码环境作用是什么?





------解决方案--------------------
你要是想自己编译Android源码成为一个系统,就需要这些东西,JNI是本地调用方法。。。

你想搞嵌入式,源码定制 ?,,搞应用开发 知道JNI就可以了~~