I'm having a hard time trying to figure out the lsmod output from Android 4.0.3. What all those "Live ADDR" entries mean?
option 14926 0 - Live 0xbf12b000
usb_wwan 9419 1 option, Live 0xbf124000
cdc_acm 15150 0 - Live 0xbf11b000
g_crypto 11918 0 - Live 0xbf0cc000
g_wmt_cmoscam 1421 0 - Live 0xbf0c8000
g_wmt_v4l2_cmos 68606 1 g_wmt_cmoscam, Live 0xbf0b1000
g_wmt_v4l2 5135 1 g_wmt_v4l2_cmos, Live 0xbf0ab000
g_wmt_ve_h264 11644 0 - Live 0xbf0a5000
g_wmt_ve_com 9021 1 g_wmt_ve_h264, Live 0xbf09e000
g_wmt_vd_vpx 65936 0 - Live 0xbf088000
g_wmt_vd_rv 735 0 - Live 0xbf084000
g_wmt_vd_vc1 713 0 - Live 0xbf080000
g_wmt_vd_h264 715 0 - Live 0xbf07c000
g_wmt_vd_h263 715 0 - Live 0xbf078000
g_wmt_vd_divx 715 0 - Live 0xbf074000
g_wmt_vd_mpeg4 717 0 - Live 0xbf070000
g_wmt_vd_mpeg2 717 0 - Live 0xbf06c000
g_wmt_vd_jdec 18829 0 - Live 0xbf063000
g_wmt_lock 2881 5 - Live 0xbf05f000
g_wmt_vd_com 158558 12 g_wmt_vd_vpx,g_wmt_vd_rv,g_wmt_vd_vc1,g_wmt_vd_h264,g_wmt_vd_h263,g_wmt_vd_divx,g_wmt_vd_mpeg4,g_wmt_vd_mpeg2,g_wmt_vd_jdec, Live 0xbf032000
mali 102375 6 - Live 0xbf00d000
ump 27968 11 mali, Live 0xbf000000
I'm asking this because I use the exact same kernel to boot Ubuntu, and this is the output for lsmod on Ubuntu
option 14926 0
g_wmt_lock 2881 0
g_wmt_vd_jdec 18829 0
g_wmt_vd_mpeg2 717 0
g_wmt_vd_mpeg4 717 0
g_wmt_vd_divx 715 0
g_wmt_vd_h263 715 0
g_wmt_vd_h264 715 0
g_wmt_vd_vc1 713 0
g_wmt_vd_rv 735 0
g_wmt_vd_vpx 65936 0
g_wmt_ve_h264 11644 0
g_wmt_ve_com 9021 1 g_wmt_ve_h264
g_wmt_cmoscam 1421 0
g_wmt_v4l2_cmos 68606 1 g_wmt_cmoscam
g_wmt_v4l2 5135 1 g_wmt_v4l2_cmos
g_wmt_vd_com 158558 9 g_wmt_vd_jdec,g_wmt_vd_mpeg2,g_wmt_vd_mpeg4,g_wmt_vd_divx,g_wmt_vd_h263,g_wmt_vd_h264,g_wmt_vd_vc1,g_wmt_vd_rv,g_wmt_vd_vpx
g_crypto 11918 0
mali 102375 0
ump 27968 1 mali
cdc_acm 15150 0
usb_wwan 9419 1 option
rt3070sta_rtl8188 442205 0
HDMI, Camera, etc. are not working on Ubuntu, although the same modules are loaded on both OS's. That's why I asked about the Live and ADDR columns. I'd like to know if this has anything to do with the lack of functionality on Ubuntu.
lsmod just reads from the file /proc/modules (it actually calls cat /proc/modules)
This is the same for many UNIX like OSes:
The first column contains the name of the module.
The second column refers to the memory size of the module, in bytes.
The third column lists how many instances of the module are currently loaded. A value of zero represents an unloaded module.
The fourth column states if the module depends upon another module to be present in order to function, and lists those other modules.
The fifth column lists what load state the module is in: Live, Loading, or Unloading are the only possible values.
The sixth column lists the current kernel memory offset for the loaded module. This information can be useful for debugging purposes, or for profiling tools such as oprofile.
Source
Related
DUMP OF SERVICE batterystats:
Battery History (0% used, 1584 used of 256KB, 6 strings using 492):
0 (9) RESET:TIME: 2016-03-07-15-59-54
0 (2) 092 c2501424 status=not-charging health=overheat plug=none temp=373 volt=4030 +running +wake_lock +mobile_radio +audio +screen data_conn=hspa phone_signal_strength=great brightness=bright fg=1000:"com.catalina.logdump"
0 (2) 092 c2501424 top=u0a68:"com.honeywell.testtools.suspendresumetest"
0 (2) 092 c2501424 user=0:"0"
0 (2) 092 c2501424 userfg=0:"0"
+69ms (2) 092 c2501424 status=discharging
AS the battery temp=373, it is showing health=overheat, That should not happen at all. Because of this health=overheat device notification LED will blink in RED.
Can anybody give me solution please.
I got the error in the kernel as
1) <3>[18810.893554, 1] bq27000-battery bq27000-battery: error reading register 18: -1
2)<3>[19205.674407, 0] bq27000-battery bq27000-battery: error reading nominal available capacity
3) BatteryService: Battery Led Mode is null
Along with this I am attaching bugreport file.
When I open a link from a barcode reader that calls an action on my site the controller is called twice and the session data is reset on the second call.
If I open a browser and paste the same URL directly into it, then the controller is only called once. If I follow the same link from an email the controller is only called once.
This is happening in Firefox, Chrome, and Safari on Android and iPhone. Any clues to why opening the browser from a link would force my website to load twice?
Edit: I've tried multiple barcode readers on iPhone and Android with the same result, the page loads twice even if it is stripped down. However, it is not happening in email links as originally stated. The email links went to a different page with a different problem, when directed to the same page as the barcode scan they do not load twice. I have corrected the info above to reflect this.
Edit 2: Here are the logs from my server for an iPad following a link in a barcode scanner. Note that the first two logs are the same except the last digit.
2016-01-29 13:19:34 69.94.136.16 GET /MyPage/ABCDEF - 80 - 24.62.217.163 Mozilla/5.0+(iPad;+CPU+OS+9_2+like+Mac+OS+X)+AppleWebKit/601.1.46+(KHTML,+like+Gecko)+Mobile/13C75 - 200 0 0 93
2016-01-29 13:19:34 69.94.136.16 GET /MyPage/ABCDEF - 80 - 24.62.217.163 Mozilla/5.0+(iPad;+CPU+OS+9_2+like+Mac+OS+X)+AppleWebKit/601.1.46+(KHTML,+like+Gecko)+Mobile/13C75 - 200 0 0 109
2016-01-29 13:19:34 69.94.136.16 GET /Scripts/jquery-2.1.1.min.js - 80 - 24.62.217.163 Mozilla/5.0+(iPad;+CPU+OS+9_2+like+Mac+OS+X)+AppleWebKit/601.1.46+(KHTML,+like+Gecko)+Mobile/13C75 http://example.com/MyPage/ABCDEF 200 0 0 328
Edit 3: Here is a fairly typical version for Android from the logs:
2016-01-29 13:14:28 69.94.136.16 GET /MyPage/ABCDEF - 80 - 77.234.44.145 ZXing+(Android) - 200 0 0 125
2016-01-29 13:14:47 69.94.136.16 GET /MyPage/ABCDEF - 80 - 77.234.44.145 Mozilla/5.0+(Linux;+Android+5.1.1;+VS985+4G+Build/LMY47V)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/47.0.2526.83+Mobile+Safari/537.36 - 200 0 0 109
I found the problem for anyone else who comes here seeking. It turns out the barcode readers are calling GET so they can get the page and show its title to the user (and perhaps they get it for other reasons as well).
So, the page gets called by the reader and by the user when he follows the link. That is why a page with no images or missing links gets loaded twice from a barcode reader.
First check references on your page, maybe they are doing second request - for example if you have css or script reference with empty path. The easiest way to test that is to setup one simple view just with "Helloo" text, and try open that from link or android app.
Can you please let me know if there are any adb commands to get the state of MediaPlayer like, Play/Pause etc.
This is what i tried like below.
c:\>adb shell dumpsys media.player
Client
pid(3764), connId(94), status(0), looping(false)
AwesomePlayer
fd(40), flags(0x00000010), bitrate(48000 bps)
Track 1
MIME(audio/mpeg), decoder(OMX.google.mp3.decoder)
AudioOutput
stream type(3), left - right volume(1.000000, 1.000000)
msec per frame(0.000000), latency (-1)
aux effect id(0), send level (0.000000)
Client
pid(3764), connId(93), status(0), looping(false)
AwesomePlayer
fd(35), flags(0x00084014), bitrate(48000 bps)
Track 1
MIME(audio/mpeg), decoder(OMX.google.mp3.decoder)
AudioOutput
stream type(3), left - right volume(1.000000, 1.000000)
msec per frame(0.022676), latency (261)
aux effect id(0), send level (0.000000)
AudioTrack::dump
stream type(3), left - right volume(1.000000, 1.000000)
format(1), channel count(2), frame count(7680)
sample rate(44100), status(0)
state(2), latency (261)
No media recorder client
Files opened and/or mapped:
/proc/749/fd/35 -> /storage/sdcard1/Music/xxx/aaaa.mp3
/proc/749/fd/40 -> /storage/sdcard1/Music/xxx/bbbb.mp3
If you are just looking if Audio is Paused or Played.
You can try using
$ adb shell dumpsys audio
Remote Control stack entries (last is top of stack):
/*....
* Some Output Here...
*/
pi: PendingIntent{42feb5a8: PendingIntentRecord{42b6b748 com.google.android.music broadcastIntent}} -- pack: com.google.android.music -- ercvr: ComponentInfo{com.google.android.music/com.google.android.music.playback.MediaButtonIntentReceiver} -- client: android.media.IRemoteControlClient$Stub$Proxy#42e544d8 -- uid: 10059 -- type: 0 state: PLAYSTATE_PAUSED, 208457ms, 1.0X
Remote Control Client stack entries (last is top of stack):
uid: -1 -- id: 1 -- type: 0 -- state: PLAYSTATE_STOPPED, PLAYBACK_POSITION_INVALID, 1.0X -- vol handling: 1 -- vol: 15 -- volMax: 15 -- volObs: null
uid: -1 -- id: 8 -- type: 0 -- state: PLAYSTATE_STOPPED, PLAYBACK_POSITION_INVALID, 1.0X -- vol handling: 1 -- vol: 15 -- volMax: 15 -- volObs: null
uid: 10059 -- id: 9 -- type: 0 -- state: PLAYSTATE_PAUSED, 208457ms, 1.0X -- vol handling: 1 -- vol: 15 -- volMax: 15 -- volObs: null
In both, it shows if state is PLAYSTATE_PAUSED, PLAYSTATE_PLAYING or PLAYSTATE_STOPPED.
I even tried it on different device,
$ adb shell dumpsys audio
Remote Control stack entries:
pi: PendingIntent{41b84660: PendingIntentRecord{42239310 com.sonyericsson.music broadcastIntent}} -- ercvr: ComponentInfo{com.sonyericsson.music/com.sonyericsson.music.proxyservice.MediaButtonReceiver} -- client: android.media.IRemoteControlClient$Stub$Proxy#428b5528 -- uid: 10049 -- type: 0 state: 2
Remote Control Client stack entries:
uid: -1 -- id: 1 -- type: 0 -- state: 1 -- vol handling: 1 -- vol: 15 -- volMax: 15 -- volObs: null
uid: -1 -- id: 2 -- type: 0 -- state: 1 -- vol handling: 1 -- vol: 15 -- volMax: 15 -- volObs: null
uid: 10049 -- id: 5 -- type: 0 -- state: 2 -- vol handling: 1 -- vol: 15 -- volMax: 15 -- volObs: null
Here it shows the state:1 or state:2,
It basically the value for that.
PLAYSTATE_PLAYING
PLAYSTATE_PAUSED
PLAYSTATE_STOPPED
You could parse the output of the above to get these values.
Hopefully this is what you looking for.
Another way to tell will be from the state present in the AudioTrack::dump.
For instance, in your case:
AudioTrack::dump
stream type(3), left - right volume(1.000000, 1.000000)
format(1), channel count(2), frame count(7680)
sample rate(44100), status(0)
state(2), latency (261)
state(2) tells us that the media is paused/stopped. state(0) would mean that the media is playing and state(1) would mean that the playing media was interrupted by some pop-up.
I'm making application for watching movies which shows images of categories and movies in grid, list and horizontal scroll view.
App has several activities and in every one of them are shown images. Proglem is when user changes activities going only forward, in one point app crashes with OutOfMemory exception.
Using Heap and MAT tools i found that bitmap uses enormous memory of the heap in every activity. On same phones, like Samsung Galaxy S4 and Alcatel OneTouch Idol with full HD display, app crashes in just 2-3 activities. That is crazy :)
So, my question is, how can i overcome this problem with memory?
I know that this is ordinary Android problem but there must be something that I can do to fix this.
Every image is optimazed for its place ( image dimensions are precisely measured before attached to image view).
Cheers.
Do some profiling .
You didn't provide any code or logs .So ,will tell you basic approach which i follow .
start your first activity . Continously run adb shell dumpsys "PID" or "PackageName" .
Get info while you reproduce activity .
execute adb shell " while true ; do dumpsys meminfo 22188 ; done ; " > dumpsysOfsmthn.txt
* MEMINFO in pid 22188 [com.sec.android.smthn] **
Pss Private Private Swapped Heap Heap Heap
Total Dirty Clean Dirty Size Alloc Free
------ ------ ------ ------ ------ ------ ------
Native Heap 44 44 0 0 11132 10455 184
Dalvik Heap 19189 18804 0 0 25660 19221 6439
Dalvik Other 3891 3828 0 0
Stack 200 200 0 0
Ashmem 2 0 0 0
Other dev 8168 7844 4 0
.so mmap 1990 1032 508 0
.jar mmap 5 0 4 0
.apk mmap 315 0 124 0
.ttf mmap 21 0 4 0
.dex mmap 6553 248 5584 0
Other mmap 90 4 20 0
Unknown 5743 5740 0 0
TOTAL 46211 37744 6248 0 36792 29676 6623
Objects
Views: 39 ViewRootImpl: 1
AppContexts: 4 Activities: 1
Assets: 3 AssetManagers: 3
Local Binders: 78 Proxy Binders: 42
Death Recipients: 2
OpenSSL Sockets: 0
SQL
MEMORY_USED: 286
PAGECACHE_OVERFLOW: 53 MALLOC_SIZE: 62
DATABASES
pgsz dbsz Lookaside(b) cache Dbname
4 24 53 2/17/3 /data/data/com.sec.android.smthn/databases/sns.db
4 32 55 1/13/2 /data/data/com.sec.android.smthn/databases/picasa.db
4 36 27 10/17/3 /data/data/com.sec.android.smthn/databases/local.db
Applications Memory Usage (kB):
Uptime: 31556347 Realtime: 96096816
Check which part of portion is increasing constantly .
It could be ViewRootImpl or activity context or anything .
Above information might get you to some clue .
As told take heapdump analyse it with MAT or JHAT .
Mat is awewome tool IMHO .
you should look for memory leaks caused by:
Long-lived references to an Activity, Context, View, Drawable, and other objects that may hold a reference to the container Activity or Context.
Non-static inner classes (such as a Runnable, which can hold the Activity instance).
Caches that hold objects longer than necessary.
Leak can be caused by any Object.Generally bitmaps are big. And if the out-of memory occurs very easily then you need to check on heavy objects like bitmaps.
For MAT and Leaks understanding Click this
Also this .
Also apart from above things you can also use DDMS allocation tracker to get more clue > yeah nothing can get better data than MAT .
Also check this post . Very informative
I write simple program to get various information: signal strength, cell info etc... To test I use two phones with the same Android version 2.1 - Sony Ericsson and Samsung Galaxy Spice.
To extract Neighbour Cell Info I use:
telephonyConnectionAdapter.getNeighboringCellInfos()
On SE I am able to get Neighbour Cell info and in adb logcat -b radio I can see:
D/GSM ( 488): [GsmSST] Poll ServiceState done: oldSS=[0 home T-Mobile.pl
T- Mobile.pl 26002 EDGE:2 CSS not supported -1 -1 RoamInd=-1 DefRoamInd=-1
EmergOnly=false] newSS=[0 home T-Mobile.pl T-Mobile.pl 26002 EDGE:2 CSS not
supported -1 -1 RoamInd=-1 DefRoamInd=-1 EmergOnly=false] oldGprs=0 newData=0
oldMaxDataCalls=20 mNewMaxDataCalls=20
oldReasonDataDenied=-1 mNewReasonDataDenied=-1 oldType=EDGE:2 newType=EDGE:2
D/GSM ( 488): [EONS] Reading data from EF_OPL or EF_PNN is not complete.
Suppress operator name display until all EF_OPL/EF_PNN data is read.
D/RILJ ( 488): [8847]> REQUEST_GET_NEIGHBORING_CELL_IDS
D/RILJ ( 488): [8847]< REQUEST_GET_NEIGHBORING_CELL_IDS [b01b59c7#18 [b01b5260#27] [] [b01b63f9#19] [b01b2f4f#17]
but the same application could not extract Neighbour Cell Info on Samsung - the list is empty and adb logcat -b radio looks:
D/GSM ( 1993): Poll ServiceState done: oldSS=[0 home Play Play 26006 (manual)
EDGE CSS not supported -1 -1RoamInd: -1DefRoamInd: -1] newSS=[0 home Play Play
26006 (manual) EDGE CSS not supported -1 -1RoamInd: -1DefRoamInd: -1] oldGprs=0
newGprs=0 oldType=EDGE newType=EDGE D/RILJ ( 1993): [5590]> REQUEST_GET_NEIGHBORING_CELL_IDS
D/RILC ( 1855): [5590]> GET_NEIGHBORING_CELL_IDS
D/RILC ( 1855): [5590]< GET_NEIGHBORING_CELL_IDS fails by E_REQUEST_NOT_SUPPORTED
D/RILJ ( 1993): [5590]< REQUEST_GET_NEIGHBORING_CELL_IDS error: com.android.internal.telephony.CommandException: REQUEST_NOT_SUPPORTED
The is one more important information. When I use magic code *#*#197328640#*#* on Samsung and enter to service menu. There are few visible Neighbour Cells.
Any idea what is going on? Or at least what does this mean?
"com.android.internal.telephony.CommandException: REQUEST_NOT_SUPPORTED"
Each manufacturer implements the low level functionality for their devices as they see fit. In this case, Samsung has decided not to support this feature on this device. This means that you will not be able to get the list of neighboring cells on this device.