Yes and yes, as Google says:
"Using native code does not automatically increase productivity, but always increases the complexity of the application ... If you write your own code, your applications are still packaged in an .apk file and they still run inside the virtual machine on the device. The main application model for Android does not change.
from http://developer.android.com/sdk/ndk/index.html
(Personally, I do not agree that writing in C ++ automatically makes a more complex program than Java, I would even say it in a different way for an experienced C ++ programmer)
source share