I have replaced the spark plug and wires, which has lifetime warranty.
Bosch Platinum 2 spark plugs and Duralast wires. Saved $200 than let mechanic do it.
Now the shaking problem of the car seems gone. We had P0304 error code which means #4 cylinder misfire. It did not go back to normal once we replaced it. But after we fasten/enforced both end of the wires, the problem seems gone so far. I suspect it is contact problem, and replacement of spark plug and wire might not be needed.
The speedometer still jumps, but not as often or bad. I suspect that misfire worsen the speedometer problem, although they seem unrelated.