Question: I have a android app that calls s3 to upload and download pics to bucket, I have that working with CognitoCachingCredentialsProvider now, I want to start using access key as the credential, in creating the s3client object. 
I know I and hard code the AWS\_ACCESS\_KEY\_ID and AWS\_SECRET\_KEY, put them environment variable or in a file in home directory.

Since I am going to use the AWS\_ACCESS\_KEY\_ID and AWS\_SECRET\_KEY in my android app, environment variable wont be available. My question is where do I put these keys so that I can use s3client in my android app. Where does file reside if the app were to go to app store.

Answer: 
You should never have you access key and secret key in an Android application, hard coded, or in a separate file. This is especially true if it is going on the app store. This is a large security risk, as anyone can decompile your app and get your credentials.

What is wrong with the Cognito credentials you are currently using?
You don't need any special file. Just hardcode your credentials as constants like `static final`.