Android Tips and Tricks: Difference between revisions

From WickyWiki
mNo edit summary
Line 8: Line 8:
= Debug a service =
= Debug a service =


The the debugger will not be able to connect to a service because there is no Main activity. Processes are started by the Android system at some point. To connect the code to the debugger add some code to your project that is executed at an early stage:
The the Eclipse debugger will not be able to connect to the Android debugger (ADB) for a service because there is no Main activity in the service. Such a  process is started by the Android system (for example an account sync). To connect the code to the debugger add the following to your project and make sure it is traversed at an early stage:


<syntaxhighlight lang=java>
<syntaxhighlight lang=java>
//TODO: wjv: remember to remove this for the final code
//TODO: wjv: remember to remove this for the final code for performance considerations
Toast toastwjv =  Toast.makeText(getApplicationContext(), "waitForDebugger", Toast.LENGTH_LONG);
 
toastwjv.show();
//show a message to remind you it is in here
Toast toast =  Toast.makeText(getApplicationContext(), "waitForDebugger()", Toast.LENGTH_LONG);
toastv.show();
 
//wait for the debugger
android.os.Debug.waitForDebugger();
android.os.Debug.waitForDebugger();
</syntaxhighlight>
</syntaxhighlight>

Revision as of 20:20, 2 September 2013


Rotate the Android Virtual Device (AVD)

CTRL+F11/F12

Debug a service

The the Eclipse debugger will not be able to connect to the Android debugger (ADB) for a service because there is no Main activity in the service. Such a process is started by the Android system (for example an account sync). To connect the code to the debugger add the following to your project and make sure it is traversed at an early stage:

//TODO: wjv: remember to remove this for the final code for performance considerations

//show a message to remind you it is in here
Toast toast =  Toast.makeText(getApplicationContext(), "waitForDebugger()", Toast.LENGTH_LONG);
toastv.show();

//wait for the debugger
android.os.Debug.waitForDebugger();

Android target version

Set target, like 16=4.1.2, 17=4.2.2, 18=4.3 in:

  • modify AndroidManifest.xml
  • modify project.properties
  • Project - clean

Eclipse hint color, javadoc background

On Ubuntu the Javadoc background could be black, the blue links are difficult to read. Changing this in Eclipse does nor work: (Window>Preferences>General>appearance>Colors and Fonts>Java), we have to change the hint colors for the Ubuntu OS:

#backup
sudo cp /usr/share/themes/Ambiance/gtk-3.0/settings.ini /usr/share/themes/Ambiance/gtk-3.0/settings.ini.backup
sudo cp /usr/share/themes/Ambiance/gtk-3.0/gtk.css /usr/share/themes/Ambiance/gtk-3.0/gtk.css.backup
sudo cp /usr/share/themes/Ambiance/gtk-2.0/gtkrc /usr/share/themes/Ambiance/gtk-2.0/gtkrc.backup

#foreground text white => black
sudo sed -i s/tooltip_fg_color:#ffffff/tooltip_fg_color:#000000/g  /usr/share/themes/Ambiance/gtk-3.0/settings.ini /usr/share/themes/Ambiance/gtk-3.0/gtk.css /usr/share/themes/Ambiance/gtk-2.0/gtkrc

#background color black => yellow
sudo sed -i s/tooltip_bg_color:#000000/tooltip_bg_color:#f5f5b5/g  /usr/share/themes/Ambiance/gtk-3.0/settings.ini /usr/share/themes/Ambiance/gtk-3.0/gtk.css /usr/share/themes/Ambiance/gtk-2.0/gtkrc
  • logout
  • login