Reading the android docs, they make it sound like you can use canvas straight up to draw to the screen, without going through an onDraw() callback method.
If your application does not require a significant amount of processing or frame-rate speed (perhaps for a chess game, a snake game, or another slowly-animated application), then you should consider creating a custom View component and drawing with a Canvas in View.onDraw().
...As opposed to drawing with a Canvas outside of View.onDraw()? How do you do that? I'm trying to make a side-scroller and am looking for the fastest way to draw to the screen.