Строки лежат в xml(может быть в бинарном виде запакованном) в ресурсах приложения. Также генерируется R-файл(IDE его генерирует, и при билде он тоже генерируется), в нём лежат айдишники строк, не сами строки. В рантайме строки из ресурсов читаются по айдишникам из R-файла, есть специальный класс Resources, в нём используется AssetManager. Когда ты делаешь
context.getString(R.string.mystring) или context.getResources().getString(R.string.mystring) это и происходит.
Хочешь узнать больше - открывай код и читай его.