I'm creating a mobile game for Android and iOS.
As I read on Android's website:
I build my app to target only devices API16+, BUT, does it mean that I can use non-pot textures?
Is this possible that someone with this API level will have OpenGL 1.0 on his device which will crash trying to load my textures? Is this device independant?
Firstly, you didn't mention whether you are targeting OpenGLES 1 or 2. From the information you've posted, all the devices you target support OpenGLES 2, but it's up to you which version you actually chose to use.
Assuming your code uses OpenGLES 2, then all devices should work with non-POT textures. However, you should be aware that texture wrapping (GL_REPEAT) and mipmapping are only supported on non-POT textures via extensions. Also, a lot of devices will allocate memory as if your texture was POT anyway.
Because of these reasons, it's almost always a good idea to author POT textures for 3D assets. For 2D assets it's a good idea to think about using texture atlasses to combine multiple non-POT textures into a larger POT atlas.