Battery life of high-end smartphones and tablet PCs is becoming more and more important due to the gap between the rapid increase in power requirements of the electronic components and the slow increase in energy storage capacity of Li-ion batteries. Energy harvesting, on the other hand, is a promising technique that can prolong the battery life without compromising the users' experience with the devices and potentially without the necessity to have access to a wall AC outlet. Such energy harvesting products are available on the market today, but most of them are equipped with only a large battery pack, which exhibits poor capacity utilization during solar energy harvesting. In this paper, we propose and demonstrate that using a supercapacitor instead of a large capacity battery can be beneficial in terms of improving the charging efficiency, and thereby, significantly reducing the charging time. However, this is not a trivial task and gives rise to many problems associated with charging the supercapacitor via the USB charging port. We analyze the USB charging standard and commercial USB charger designs in smartphones to formulate an energy efficiency optimization problem and propose a dynamic programming-based online algorithm to solve the aforesaid problem. Experimental results show up to 34.5% of charging efficiency improvement compared with commercial solar charger designs.