There are two common methods:
- Current shunt resistor.
- Inductive measurement.
For the current shunt resistor method, a very low resistance current shunt resistor is placed in the circuit you want to measure. Then, you measure the voltage before the resistor and after the resistor. Then, since you know the voltage at each side of the resistor and the resistance value of the resistor, you can calculate the current using I=E/R. Three problems with this method: 1) It adds some resistance to your circuit which decreases its efficiency some. 2) A current shunt resistor of low enough value that it doesn't effect efficiency much, will be very hard to read accurately with a low current circuit. 3) Arduino, on its own, doesn't have highly accurate voltage measurement capability.
For the inductive measurement method, a coil of wire is wrapped around a wire of the circuit you want to measure and a fairly high resistance resistor is placed accross (in series with) that coil of wire. Then, after measuring and calibrating your coil of wire, you again measure the voltage on either side of the resistor and calculate the current using the formula I=E/R * some calibration factor. This method has the advantage over the current sense resistor method in that it can be more accurate for low current circuits and it doesn't reduce the efficiency of the circuit as much. Still, a disadvantage is that an Arduino is not terribly accurate when measuring voltages.
EDIT: Or, of course, I suppose you could put a high resistance resistor directly across the solar cell and measure the current flow through it using I=E/R.