Saturday, April 26, 2014

Shell script to record linux top to a text file continuously after a given time

We can record the whole top or a specific process with a process ID or process name. You can customize this code with existing shell commands related to linux shell command options relate with top "top".  Refer to http://linux.about.com/od/commands/l/blcmdl1_top.htm

Replace
[1] with the name of the process.
[2] with the name of the text file where the output is need to be recorded.

while [ 1 ] 

     do top -n 1 -p $(pidof firefox[1]) -b >> topoutput.txt[2]

     sleep 0.1 

done 


If you need to track the process just with the process id use below script.

Replace
[3] with the id of the process.

while [ 1 ] 

     do top -n 1 -p 2304[3] -b >> topoutput.txt[2]

     sleep 0.1 

done 

Write above codes with your favourite text editor and save it with .sh

To start this batch process via shell type

bash <file name of the shell script>.sh

Tuesday, April 22, 2014

Saturday, April 5, 2014

Simple check box list in Android


From this post I am going to describe a simple way to design a custom check box list for an Android application. I have presented

  • AllergyFood.java- Which is the activity that included the check box list
  • allergy_food.xml- Which is the layout file for check box list
  • strings.xml- Which is the resource file that used for extract the values for the check box list.

What I am doing here is cerating a custom check box list with the values from the string.xml. Then let the user to put checks for their prefered values. Finally all the selected values will be stored in a string array by a button click event.

  • User interface is looks like below image.

  • strings.xml file is included below string array.
<string-array name="allergy_foods">
      
        <item>Peanut</item>
        <item>Tree Nut</item>
        <item >Milk</item>
        <item>Egg</item>
        <item>Soy</item>
        <item >Wheat</item>
        <item>Fish</item>
        <item>Shell Fish</item>
        <item >Tomato</item>
        <item >Strawberry</item>
       
 </string-array>




  • allergy_food.xml Layout file for check box list  
    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="332dp"
        android:layout_weight="3.38" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Next Step" />




  •  AllergyFood.java Activity file that is included the check box list layout

import android.app.ListActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;

import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.ListView;

import android.content.Intent; 

public class AllergyFood extends ListActivity{

String checkedValues="";

  @Override
    protected void onCreate(Bundle savedInstanceState) {


        super.onCreate(savedInstanceState);
        setContentView(R.layout.allergy_food);
      
      setListAdapter(new ArrayAdapter<String>(this,          android.R.layout.simple_list_item_multiple_choice,getResources().getStringArray(R.array.allergy_foods)));
        
        Button nextStep=(Button) findViewById(R.id.button1);

        final ListView listView1=(ListView) findViewById(android.R.id.list);
        listView1.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 


    listView1.setOnItemClickListener(new OnItemClickListener() {

      @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3)

{

                int counter=0;
                checkedValues="";
       while(listView1.getCheckedItemPositions().size()>counter){                      if(listView1.getCheckedItemPositions().valueAt(counter)==true)

          {                                                                       checkedValues=checkedValues+"|"+listView1.getItemAtPosition(counter); 
                    }
                    counter++;
                }            
            }
           
        });

}