<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7210934602430075707</id><updated>2011-12-09T01:15:39.129-08:00</updated><title type='text'>Linux...</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vinayharugop.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7210934602430075707/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vinayharugop.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Vinay H</name><uri>http://www.blogger.com/profile/09639909950338629884</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7210934602430075707.post-228377921253028595</id><published>2009-08-24T17:43:00.000-07:00</published><updated>2009-09-06T22:28:35.899-07:00</updated><title type='text'>Webkit instrumentation in android</title><content type='html'>It is interesting to find webkit engine performance in terms of time taken by different tasks while loading the web page. Depending on the website page complexity it makes one curious to know how the page got loaded and what was the time consumption. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Android port of webkit has got one interesting instrumentation framework inplementation. In android source go to external/webkit directory and grep for ANDROID_INSTRUMENTATION...!! You will find in many places inside javascriptcore, Webcore, HTMLparsing, CSS parsing, layout and many other locations.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Android instrumentation framework is very well designed and impressive. I have been following this framework and this is improving in every release of webkit in android. Basically each component of webcore engine will register a timer with tag. This timer will be started when component start its job and records the time when completes. Refer timecounter.cpp/.h for more tags and counter options.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The output of the instrumentation will look like below which  I tried on &lt;span style="font-weight: bold; font-style: italic;"&gt;android emulator&lt;/span&gt;,&lt;br /&gt;D/WebCore (  700): *-* Start browser instrument&lt;br /&gt;D/WebCore (  700): *-* Total load time: 34832 ms, thread time: 23116 ms for file:///android_asset/ind.html&lt;br /&gt;D/WebCore (  700): *-* Total css parsing time: 250 ms called 6 times&lt;br /&gt;D/WebCore (  700): *-* Total javascript time: 13333 ms called 35 times&lt;br /&gt;D/WebCore (  700): *-* Total calculate style time: 279 ms called 9 times&lt;br /&gt;D/WebCore (  700): *-* Total Java callback (frame bridge) time: 510 ms called 79 times&lt;br /&gt;D/WebCore (  700): *-* Total parsing (may include calcStyle or Java callback) time: 2577 ms called 36 times&lt;br /&gt;D/WebCore (  700): *-* Total layout time: 1252 ms called 9 times&lt;br /&gt;D/WebCore (  700): *-* Total native 1 (frame bridge) time: 77 ms called 1 times&lt;br /&gt;D/WebCore (  700): *-* Total native 2 (resource load) time: 10804 ms called 206 times&lt;br /&gt;D/WebCore (  700): *-* Total native 3 (shared timer) time: 7676 ms called 22 times&lt;br /&gt;D/WebCore (  700): *-* Total build nav (webview core) time: 1264 ms called 3 times&lt;br /&gt;D/WebCore (  700): *-* Total record content (webview core) time: 1403 ms called 7 times&lt;br /&gt;D/WebCore (  700): *-* Total native 4 (webview core) time: 2043 ms called 27 times&lt;br /&gt;D/WebCore (  700): *-* Total draw content (webview ui) time: 961 ms called 10 times&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7210934602430075707-228377921253028595?l=vinayharugop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinayharugop.blogspot.com/feeds/228377921253028595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7210934602430075707&amp;postID=228377921253028595' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7210934602430075707/posts/default/228377921253028595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7210934602430075707/posts/default/228377921253028595'/><link rel='alternate' type='text/html' href='http://vinayharugop.blogspot.com/2009/08/webkit-instrumentation-in-android.html' title='Webkit instrumentation in android'/><author><name>Vinay H</name><uri>http://www.blogger.com/profile/09639909950338629884</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7210934602430075707.post-6317549281026152422</id><published>2009-02-22T03:02:00.000-08:00</published><updated>2009-02-22T03:33:26.462-08:00</updated><title type='text'>Android: Wifi driver integration</title><content type='html'>I started looking into Wifi driver integration into Android. Android from one and only Google..which has created a big storm in the mobile platform world. Android is basicaly combination of Linux kernel with Java stack. It has got cutstomoized and optmized libc (bionic) and java virtual machine (Dalvik).&lt;br /&gt;&lt;br /&gt;Wifi conifiguration in Android starts from Java application and goes till driver/firmware insertion through JNI interface and wifi native component. Before starting modification for these components, I wanted to verify whether Wifi driver for my target will work under Android or not.&lt;br /&gt;&lt;br /&gt;wpa_supplicant component was not enabled by default in android 1.0 release. So to enable&lt;br /&gt;Add HAVE_CUSTOM_WIFI_DRIVER_2 := true to build/target/board/generic/BoardConfig.mk file.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. make sure external/wpa_supplicant/.config has got below entries&lt;br /&gt;&lt;br /&gt;CONFIG_WIRELESS_EXTENSION=y&lt;br /&gt;&lt;br /&gt;CONFIG_CTRL_IFACE=y&lt;br /&gt;&lt;br /&gt;CONFIG_DRIVER_WEXT=y&lt;br /&gt;3. Build android with this to get support for WEXT and wpa_supplicant client.&lt;br /&gt;&lt;br /&gt;4. After the system boot, insert driver and know the interface (in my case it is eth1)&lt;br /&gt;&lt;br /&gt;5. Modify wpa_supplicant.conf file for AP configuration and Run&lt;br /&gt;&lt;br /&gt;/system/bin/wpa_supplicant -Dwext -ieth1 -c/sdcard/wpa_supplicant.conf&lt;br /&gt;&lt;br /&gt;6. Run dhcp to get the IP/system/bin/dhcpcd -d eth1&lt;br /&gt;&lt;br /&gt;7. Ping to AP to check connectivity.&lt;br /&gt;&lt;br /&gt;To automate these steps, put above commands for wpa_supplicant and dhcpcd in init.rc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7210934602430075707-6317549281026152422?l=vinayharugop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinayharugop.blogspot.com/feeds/6317549281026152422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7210934602430075707&amp;postID=6317549281026152422' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7210934602430075707/posts/default/6317549281026152422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7210934602430075707/posts/default/6317549281026152422'/><link rel='alternate' type='text/html' href='http://vinayharugop.blogspot.com/2009/02/android-wifi-driver-integration.html' title='Android: Wifi driver integration'/><author><name>Vinay H</name><uri>http://www.blogger.com/profile/09639909950338629884</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7210934602430075707.post-8009653952806676964</id><published>2008-12-08T08:54:00.000-08:00</published><updated>2008-12-08T20:44:16.302-08:00</updated><title type='text'>bitbake..smart package building tool</title><content type='html'>Ever tried &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;Linux&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;package&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;building&lt;/span&gt; which has got many dependency ??? I will give one example of multimedia player..&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;which&lt;/span&gt; depends on &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;middle ware&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;codecs&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;middleware&lt;/span&gt; (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;gst&lt;/span&gt;), kernel, driver modules, X window System, widget sets libs and so and so..&lt;div&gt;If one starts &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;compiling&lt;/span&gt; media player then all dependency packages must be compiled first and last player hoping all the compiler requirements, library versions, proper headers, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;APi&lt;/span&gt; are in place.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Recently I came across "&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;bitbake&lt;/span&gt;&lt;/span&gt;" one smart tool which fetches source code from the web, unpacks, applies patches, configure as per the system &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;capabilities&lt;/span&gt;, compiles, &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_12"&gt;installs&lt;/span&gt; and creates binary/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;dev&lt;/span&gt;/debug packages for you..so simple and makes life easy...I got to work &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_14"&gt;extensively&lt;/span&gt; with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;bitbake&lt;/span&gt; when porting &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;openembedded&lt;/span&gt; based Poky mobile platform.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;bitbake&lt;/span&gt; parses .&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;bb&lt;/span&gt; file which will have following information...&lt;/div&gt;&lt;div&gt;1. License and package description&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Package dependency tree&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. Package name and its download location &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;URl&lt;/span&gt; with method of download (git, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;cvs&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;svn&lt;/span&gt;, ftp..)&lt;/div&gt;&lt;div&gt;4. List of patches to apply&lt;/div&gt;&lt;div&gt;5. Package configuration options &lt;/div&gt;&lt;div&gt;6. Compiler options&lt;/div&gt;&lt;div&gt;7. Package installation options...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Just imagine all above steps are performed &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;by bitbake&lt;/span&gt; through &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;one single command&lt;/span&gt;. Life made easy ??&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7210934602430075707-8009653952806676964?l=vinayharugop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinayharugop.blogspot.com/feeds/8009653952806676964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7210934602430075707&amp;postID=8009653952806676964' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7210934602430075707/posts/default/8009653952806676964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7210934602430075707/posts/default/8009653952806676964'/><link rel='alternate' type='text/html' href='http://vinayharugop.blogspot.com/2008/12/bitbakesmart-package-building-tool.html' title='bitbake..smart package building tool'/><author><name>Vinay H</name><uri>http://www.blogger.com/profile/09639909950338629884</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
