когда использовать "по-русски", а когда лучше "на русском"?

 

это разные вещи. во первых нужно разобраться с каждой из этих фраз. "по-русски" - это наречие (adverb) и оно отвечает на вопрос "как?". и применять его нужно отвечая на этот вопрос. например: "говорить по русски", "жить по русски", "готовить по-русски", "думать по-русски" и так далее. фраза "на русском" это сокращенная фраза "на русском языке" (при помощи русского языка). и применять её нужно принимая во внимание это сокращение и четкую привязку к слову "язык". например - "я говорю на русском", "эта книга написана на русском" , "это произведение переведено на русский". есть такая особенность - в большинстве случаев, "говорить по русски" = "говорю на русском".

unfortunately, there is no rule. sometimes you can use both variants, sometimes only one. it's depends on the context. but better to use "на русском языке" ("на русском" - colloquial form). 
я говорю по-русски (i speak russian). я говорю на русском языке (i speak russian). synonyms here
эта книга на русском языке. (this book is in russian) you can't say "по-русски" here.
я хорошо понимаю по-русски. (i understand russian well). you can't say "на русском языке" here. but you can say: я хорошо понимаю русский язык (i understand russian well).

говорит как? - по-русски
разговаривать на каком языке? - на русском, на английском ...

здесь все зависит от контекста. "по-русски" может означать не только принадлежность к русскому языку, но и стиль мышления, поступков. менталитет. а "на русском" - это уже относится исключительно к русскому языку в устной или письменной форме.