Warning - I am answering this post only because nobody else has, and I do not like to see questions go completely unanswered. I have done a lot of work with geometric data and with DXFs, but several years ago and in a different sphere.
If you are interested in pen-up and pen-down times then I assume that your aim is to minimise throughput time in a mass-production environment. In this case converting your various input data into a common format that you can optimise would seem the only sensible path. G-code also seems a sensible choice as, presumably, this problem has already been tackled there. If not then you have to solve a "travelling salesman" problem with the possible complication that some "cities" have two locations - start and end.
I am sure that converting SVG and DXF to G-code has been done before, although I could not find any Android library. If you have to start from scratch then DXF is essentially a simpler (cruder) form of SVG - closer to a tagged file format. I have written a DXF processor myself, some years ago and for a desktop application. Some modern CAD packages include vast amounts of administrative data in their DXF output - you should try to avoid that. (I am thinking AutoDesk here. There is an option to exclude the admin data - you should use it). I don't know anything about CDR.
I think that you might have a problem finding existing Android libraries to help you, but you are probably ahead of me on that. If you have to start from scratch then parsing SVG and basic DXF data is quite approachable. Optimising the cutter route might be more challenging, but it is probably not too difficult to find a sub-optimal but acceptable solution. I am sure that it has been done before.