No, do not use the framework APIs and not without a modified device.
You will need to create the userdata.img file, which is essentially a copy at the level of the storage block that is writable on the device. However, you do not have block-level access to the file system.
In addition, your application will not have read access to most of the file system.
Now, if you want to create an empty AVD, then you can do it (but why?). This is because the requirements for creating an AVD are pretty simple.
system.img, . ( , .)