When I was looking at this last year, I found that Rickard’s cardboard version in the SDK was the best one to work with. It was working quite well but if I remember correctly it had two major issues.
There was some sort of rendering issue - I can’t remember quite what it was, I’ve got a phone somewhere with it installed so I’ll see if I can find it later when I get home, but I believe models were randomly disappearing and reappearing again.
The head tracking was poor, it was good enough to look around for 30 seconds or so, but then drift became very noticable. I looked into this a bit further at the time, and came to the conclusion that this is a result of the gyroscopes in phones not being accurate enough - they were never designed for VR. It seemed google had tried to remedy this, because in later versions they added a “recenter head tracking” method.
Because Rickard’s version was based on an older version of cardboard (0.6 maybe?), it didn’t have the recentre head tracking method. I tried to update to a later version, but in version 0.7, they changed the way a View was composed so that it became a FrameLayout. They also repackaged everything as .aars. I tried extracting the .jar libraries at the time so that I could update the SDK side, but it was more than I was capable of at the time and I was worried I was doing a stupid thing.
I decided to stop looking at it and that I’d come back to it when I had more of an idea of what to do.
I haven’t really looked at it yet as I’ve been working on other things, but I don’t think it can actually be much more complicated than adding a frame to the Android Manifest xml in the SDK.
If you look at these, then it will give you more of an idea of what’s changed: