1. 程式人生 > >[轉]幾種獲取Android系統記憶體使用狀況的方法

[轉]幾種獲取Android系統記憶體使用狀況的方法



(一)DDMS 的Heap Dump


1) Data Object:java object.

2) Class Object:object of type Class, e.g. what you'd get from java.lang.String.class or myObject.getClass( ).
3) 1,2,4,8-byte array:Number of bytes per entry.
   1-byte array: byte, boolean
   2-byte array: char, short
   4-byte array: float, int
   8-byte array: double, long

4) non-Java object:A non-Java Object is a piece of memory that isn't actually accessible from code written in Java. Essentially it's a blob of stuff that got stuck on the virtual heap but has no meaning to interpreted code. Shouldn't be much of that.----------------------------------------------------

需要root許可權同時要支援以下命令的Android工程機

1:[email protected]:/ # procrank  檢視所有程序的記憶體資訊包括:PID      Vss      Rss      Pss      Uss  cmdline

複製程式碼
[email protected]:/ # procrank                                                      
warning: could not create process interface for 32099
  PID      Vss      Rss      Pss      Uss  cmdline
17690 75152K 75020K 40491K 38024K com.dianxinos.optimizer.channel 13968 124792K 61864K 35726K 34372K com.dianxinos.optimizer.channel 1516 65052K 64940K 29661K 27076K android.process.acore 1322 88028K 65764K 29581K 26156K system_server 1417 68320K 63892K 28635K 25820K com.android.systemui 1757 55040K 54960K 21176K 19084K com.qihoo360.mobilesafe_mtk6573 12294 45208K 45096K 13238K 11220K android.process.acore 29904 44984K 44896K 12227K 10316K com.dianxinos.optimizer.engine.demo:service 29819 61032K 44624K 11772K 9808K com.dianxinos.optimizer.engine.demo 13284 40556K 40448K 9823K 8472K com.qihoo.appstore 1499 40036K 39940K 9095K 7700K com.android.phone 1478 39988K 39880K 8998K 7588K com.cootek.smartinputv5 12497 36860K 36736K 6975K 5844K android.process.media 12910 36420K 36336K 6754K 5640K com.cnnet.fknjjzw 25083 36772K 36640K 6413K 5180K com.google.process.gapps 26667 36660K 36512K 6323K 5008K com.qihoo.browser 1297 40400K 40240K 5366K 2804K zygote 30870 34424K 34284K 4495K 3264K com.android.contacts 31078 34304K 34164K 4338K 3188K com.android.providers.calendar 11595 33692K 33552K 4064K 2796K net.qihoo.launcher.widget.clockweather:WeatherService 30623 33720K 33576K 4005K 2748K com.android.settings 31103 33980K 33836K 3973K 2768K com.android.calendar
複製程式碼

2:[email protected]:/ # showmap 29904 檢視指定Pid的記憶體具體資訊

複製程式碼
[email protected]:/ # showmap 29904
 virtual                     shared   shared  private  private
    size      RSS      PSS    clean    dirty    clean    dirty    # object
-------- -------- -------- -------- -------- -------- -------- ---- ------------------------------
     124      124       17      124        0        0        0    3 /data/app/com.dianxinos.optimizer.engine.demo-2.apk
    1400      708      351      676        0       32        0    1 /data/dalvik-cache/[email protected]@com.dianxinos.optimizer.engine.demo-2[email protected]
     328      148       15      148        0        0        0    1 /data/dalvik-cache/[email protected]@[email protected]
    1348       32        1       32        0        0        0    1 /data/dalvik-cache/[email protected]@apache-[email protected]
     956      344       54      344        0        0        0    1 /data/dalvik-cache/[email protected]@[email protected]
       4        4        0        4        0        0        0    1 /data/dalvik-cache/[email protected]@[email protected]
       8        8        0        8        0        0        0    1 /data/dalvik-cache/[email protected]@[email protected]
      24        8        0        8        0        0        0    1 /data/dalvik-cache/[email protected]@core-[email protected]
    3288     1372       68     1372        0        0        0    1 /data/dalvik-cache/[email protected]@[email protected]
    1460       96        5       96        0        0        0    1 /data/dalvik-cache/[email protected]@[email protected]
     316       16        0       16        0        0        0    1 /data/dalvik-cache/[email protected]@[email protected]
   11476     4616      316     4588       20        8        0   11 /data/dalvik-cache/[email protected]@[email protected]
    2208       48        2       48        0        0        0    1 /data/dalvik-cache/[email protected]@[email protected]
      64       40        0        0       40        0        0    1 /dev/__properties__ (deleted)
      24        4        2        0        4        0        0    1 /dev/ashmem/InputChannel 41a89fb0 com.dianxinos.optimizer.engine.demo/com.dianxinos.optimizer.engine.demo.antispam.AntiSpamActi
       4        4        0        4        0        0        0    1 /dev/ashmem/SurfaceFlinger read-only heap (deleted)
    8192     2864      249        0     2712        0      152    4 /dev/ashmem/dalvik-LinearAlloc (deleted)
    2048        0        0        0        0        0        0    1 /dev/ashmem/dalvik-bitmap-1 (deleted)
    2048      220      220        0        0        0      220    1 /dev/ashmem/dalvik-bitmap-2 (deleted)
    1028      128      128        0        0        0      128    1 /dev/ashmem/dalvik-card-table (deleted)
  131072    16136     7117        0     9356        0     6780    3 /dev/ashmem/dalvik-heap (deleted)
    1024       96       96        0        0        0       96    1 /dev/ashmem/dalvik-jit-code-cache (deleted)
   43692        0        0        0        0        0        0    1 /dev/ashmem/dalvik-mark-stack (deleted)
    1016        4        4        0        0        4        0    1 /dev/binder
      12        8        0        4        4        0        0    2 /system/bin/app_process
      36       24        4       20        0        0        4    2 /system/bin/linker
     360       24        3       24        0        0        0    1 /system/fonts/DroidNaskh-Regular.ttf
      16       12        1       12        0        0        0    1 /system/fonts/DroidSansArmenian.ttf
     224       16        2       16        0        0        0    1 /system/fonts/DroidSansEthiopic-Regular.ttf
    5176      764      147      748        0       16        0    1 /system/fonts/DroidSansFallback.ttf
      24       12        1       12        0        0        0    1 /system/fonts/DroidSansGeorgian.ttf
      32       16        4       16        0        0        0    1 /system/fonts/DroidSansHebrew-Bold.ttf
      32       16        2       16        0        0        0    1 /system/fonts/DroidSansHebrew-Regular.ttf
      36       16        2       16        0        0        0    1 /system/fonts/DroidSansThai.ttf
     140        8        1        8        0        0        0    1 /system/fonts/Lohit-Bengali.ttf
      64       16        2       16        0        0        0    1 /system/fonts/Lohit-Devanagari.ttf
      68        8        1        8        0        0        0    1 /system/fonts/Lohit-Tamil.ttf
      80       12        3       12        0        0        0    1 /system/fonts/Roboto-Bold.ttf
      80       16        2       16        0        0        0    1 /system/fonts/Roboto-Regular.ttf
       4        0        0        0        0        0        0    1 /system/framework/android.policy.jar
       8        0        0        0        0        0        0    1 /system/framework/apache-xml.jar
       4        0        0        0        0        0        0    1 /system/framework/bouncycastle.jar
       4        0        0        0        0        0        0    1 /system/framework/com.qrd.plugin.feature_query.jar
       4        0        0        0        0        0        0    1 /system/framework/com.qrdinside.impl.jar
       4        0        0        0        0        0        0    1 /system/framework/core-junit.jar
       4        0        0        0        0        0        0    1 /system/framework/core.jar
      64        0        0        0        0        0        0    1 /system/framework/ext.jar
       4        0        0        0        0        0        0    1 /system/framework/filterfw.jar
     944      212       25      212        0        0        0    2 /system/framework/framework-res.apk
       4        0        0        0        0        0        0    1 /system/framework/framework.jar
       4        0        0        0        0        0        0    1 /system/framework/services.jar
      20       20        9       12        0        0        8    2 /system/lib/hw/gralloc.msm7627a.so
     152       80        5       52       24        0        4    3 /system/lib/libEGL.so
      12        8        0        0        8        0        0    2 /system/lib/libETC1.so
      24       16        0        8        8        0        0    2 /system/lib/libGLESv1_CM.so
      20       16        0        8        8        0        0    2 /system/lib/libGLESv2.so
     128       84        2       72       12        0        0    2 /system/lib/libGLESv2_dbg.so
      24       20        0       12        8        0        0    2 /system/lib/libQcomUI.so
     640      272      132      124       20        0      128    3 /system/lib/libRS.so
      56       52        1       40       12        0        0    2 /system/lib/libandroid.so
     704      616       24      568       44        0        4    2 /system/lib/libandroid_runtime.so
    4276      796       27      576      220        0        0    3 /system/lib/libbcc.so
     844      220        7      204       16        0        0    2 /system/lib/libbcinfo.so
     164      156        7      128       24        0        4    2 /system/lib/libbinder.so
      12        8        0        0        8        0        0    2 /system/lib/libbluedroid.so
     320      228       19      188       24        0       16    3 /system/lib/libc.so
     124      120        3       96       24        0        0    2 /system/lib/libcamera_client.so
    2472     1040       35      964       76        0        0    3 /system/lib/libchromium_net.so
       8        8        0        0        8        0        0    2 /system/lib/libcnefeatureconfig.so
     816      476       14      400       76        0        0    3 /system/lib/libcrypto.so
     120       44        5       36        4        0        4    3 /system/lib/libcutils.so
     300       56        1       48        8        0        0    2 /system/lib/libdbus.so
      92       84        2       68       16        0        0    2 /system/lib/libdrmframework.so
     748      640       50      580       44        0       16    3 /system/lib/libdvm.so
      28       20        8        4        8        0        8    3 /system/lib/libemoji.so
      52       12        0        4        8        0        0    3 /system/lib/libexif.so
      80        8        0        0        8        0        0    2 /system/lib/libexpat.so
     176       28        0       16       12        0        0    2 /system/lib/libflex.so
      16       16        0        8        8        0        0    2 /system/lib/libgabi++.so
       8        8        8        0        0        0        8    2 /system/lib/libgenlock.so
      60       56        1       40       16        0        0    2 /system/lib/libgesture_client.so
     216      208       10      168       36        0        4    2 /system/lib/libgui.so
       8        8        0        0        8        0        0    2 /system/lib/libhardware.so
      24       12        0        4        8        0        0    2 /system/lib/libhardware_legacy.so
     256       52        1       44        8        0        0    2 /system/lib/libharfbuzz.so
     140       60        2       48       12        0        0    2 /system/lib/libhwui.so
    1168      700       28      672       24        0        4    2 /system/lib/libicui18n.so
     992      692       36      644       36        0       12    3 /system/lib/libicuuc.so
     216       20        0       12        8        0        0    2 /system/lib/libjpeg.so
      16       16        0        8        8        0        0    2 /system/lib/liblog.so
      92       52        5       40        8        0        4    3 /system/lib/libm.so
     436      376       19      308       64        0        4    2 /system/lib/libmedia.so
      88       84        2       72       12        0        0    2 /system/lib/libmedia_jni.so
      24       24        4       16        4        0        4    2 /system/lib/libmemalloc.so
      76       40        1       28       12        0        0    2 /system/lib/libmtp.so
     216      176        5      160       16        0        0    2 /system/lib/libnativehelper.so
      24       12        0        4        8        0        0    2 /system/lib/libnetutils.so
       8        8        0        0        8        0        0    2 /system/lib/libnfc_ndef.so
     972      112        3       92       20        0        0    3 /system/lib/libnode.so
     112       60        1       48       12        0        0    2 /system/lib/libpixelflinger.so
      16       16        0        8        8        0        0    2 /system/lib/libpowermanager.so
      12       12        0        4        8        0        0    2 /system/lib/libqc-opt.so
       8        8        0        0        8        0        0    2 /system/lib/libqrdinside.so
      24       24        0       16        8        0        0    2 /system/lib/librs_jni.so
    1228      836       49      804       24        0        8    3 /system/lib/libskia.so
     336       20        0       12        8        0        0    3 /system/lib/libsonivox.so
     328      304       15      292        8        0        4    2 /system/lib/libsqlite.so
     184      116        3       96       20        0        0    2 /system/lib/libssl.so
    1496      416       14      368       48        0        0    2 /system/lib/libstagefright.so
      52       12        0        4        8        0        0    2 /system/lib/libstagefright_amrnb_common.so
      40       16        4        4        8        0        4    3 /system/lib/libstagefright_avc_common.so
       8        8        0        0        8        0        0    2 /system/lib/libstagefright_enc_common.so
      44       36        1       28        8        0        0    2 /system/lib/libstagefright_foundation.so
      12        8        0        0        8        0        0    2 /system/lib/libstagefright_yuv.so
       8        8        0        0        8        0        0    2 /system/lib/libstdc++.so
     208       16        4        8        4        0        4    2 /system/lib/libstlport.so
      16       16        0        8        8        0        0    2 /system/lib/libtilerenderer.so
      92       80        7       68        8        0        4    2 /system/lib/libui.so
      12        8        0        0        8        0        0    2 /system/lib/libusbhost.so
     188      172        8      160        8        0        4    2 /system/lib/libutils.so
    2680      512       17      428       84        0        0    3 /system/lib/libv8.so
     100       20        0        8       12        0        0    2 /system/lib/libvorbisidec.so
    6364     1724       59     1200      524        0        0    3 /system/lib/libwebcore.so
      12       12        0        4        8        0        0    2 /system/lib/libwpa_client.so
      96       52        1       44        8        0        0    2 /system/lib/libz.so
      36        8        0        0        8        0        0    2 /system/lib/libzipfile.so
   14304      144       10      144        0        0        0    2 /system/usr/icu/icudt46l.dat
     476        0        0        0        0        0        0    1 /system/usr/share/zoneinfo/zoneinfo.dat
    9896     1392      978        0      432        0      960   29 [anon]
    2756     2752     1675        0     1120        0     1632    2 [heap]
    1160       28       24        0        4        0       24    3 [stack]
       4        4        4        0        0        0        4    1 [vectors]
-------- -------- -------- -------- -------- -------- -------- ---- ------------------------------
 virtual                     shared   shared  private  private
    size      RSS      PSS    clean    dirty    clean    dirty    # object
-------- -------- -------- -------- -------- -------- -------- ---- ------------------------------
  280360    44900    12195    18956    15624       60    10260  277 TOTAL
複製程式碼

3: dumpsys meminfo 包名

4: VSS/RSS/PSS/USS 的區別

  • VSS - Virtual Set Size 虛擬耗用記憶體(包含共享庫佔用的記憶體)
  • RSS - Resident Set Size 實際使用實體記憶體(包含共享庫佔用的記憶體)
  • PSS - Proportional Set Size 實際使用的實體記憶體(比例分配共享庫佔用的記憶體)
  • USS - Unique Set Size 程序獨自佔用的實體記憶體(不包含共享庫佔用的記憶體)

一般來說記憶體佔用大小有如下規律:VSS >= RSS >= PSS >= USS

Overview

The aim of this post is to provide information that will assist in interpreting memory reports from various tools so the true memory usage for Linux processes and the system can be determined.

Android has a tool called procrank (/system/xbin/procrank), which lists out the memory usage of Linux processes in order from highest to lowest usage. The sizes reported per process are VSS, RSS, PSS, and USS.

For the sake of simplicity in this description, memory will be expressed in terms of pages, rather than bytes. Linux systems like ours manage memory in 4096 byte pages at the lowest level.

VSS (reported as VSZ from ps) is the total accessible address space of a process. This size also includes memory that may not be resident in RAM like mallocs that have been allocated but not written to. VSS is of very little use for determing real memory usage of a process.

RSS is the total memory actually held in RAM for a process.RSS can be misleading, because it reports the total all of the shared libraries that the process uses, even though a shared library is only loaded into memory once regardless of how many processes use it. RSS is not an accurate representation of the memory usage for a single process.

PSS differs from RSS in that it reports the proportional size of its shared libraries, i.e. if three processes all use a shared library that has 30 pages, that library will only contribute 10 pages to the PSS that is reported for each of the three processes. PSS is a very useful number because when the PSS for all processes in the system are summed together, that is a good representation for the total memory usage in the system. When a process is killed, the shared libraries that contributed to its PSS will be proportionally distributed to the PSS totals for the remaining processes still using that library. In this way PSS can be slightly misleading, because when a process is killed, PSS does not accurately represent the memory returned to the overall system.

USS is the total private memory for a process, i.e. that memory that is completely unique to that process.USS is an extremely useful number because it indicates the true incremental cost of running a particular process. When a process is killed, the USS is the total memory that is actually returned to the system. USS is the best number to watch when initially suspicious of memory leaks in a process.

For systems that have Python available, there is also a nice tool called smem that will report memory statistics including all of these categories.

5:通過Android系統提供的Runtime類,執行adb 命令(top,procrank,ps...等命令)查詢

通過對執行結果的標準控制檯輸出進行解析。這樣大大的擴充套件了Android查詢功能.例如:
final Process m_process = Runtime.getRuntime().exec("/system/bin/top -n 1");
final StringBuilder sbread = new StringBuilder();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(m_process.getInputStream()), 8192);

# procrank
Runtime.getRuntime().exec("/system/xbin/procrank");

6:android.os.Debug查詢PSS,VSS,USS等單個程序使用記憶體資訊

MemoryInfo[] memoryInfoArray = am.getProcessMemoryInfo(pids);
MemoryInfo pidMemoryInfo=memoryInfoArray[0];
pidMemoryInfo.getTotalPrivateDirty();
//Return total private dirty memory usage in kB. USS

7:[email protected]:/ # cat /proc/meminfo

使用adb shell cat /proc/meminfo 命令,檢視剩餘的空間還有多少,通常的系統剩餘空間是: MemFree + cached

      如下看到的系統剩餘空間是:5616K + 158632K         cat proc/meminfo
          MemTotal:         483724 kB
          MemFree:            5616 kB
          Buffers:            2732 kB
          Cached:           158632 kB
          SwapCached:            0 kB
          Active:           277336 kB
          Inactive:          83232 kB
         Active(anon):     197452 kB        需要注意的是,在 setting->apps->running app裡面看到的剩餘空間是上述MemFree + cached + background running app memory - SECOND_SERVER_MEM,具體的計算方法參考:RunningProcessView.java(/alps/package/apps /settings/src/com/android/setting/applications)裡面的void refreshUi(boolean dataChanged)函式 複製程式碼
[email protected]:/ # cat /proc/meminfo
MemTotal:         835616 kB
MemFree:          251068 kB
Buffers:           42128 kB
Cached:           218088 kB
SwapCached:            0 kB
Active:           402312 kB
Inactive:         116296 kB
Active(anon):     261152 kB
Inactive(anon):      300 kB
Active(file):     141160 kB
Inactive(file):   115996 kB
Unevictable:        2728 kB
Mlocked:               0 kB
HighTotal:        121856 kB
HighFree:            416 kB
LowTotal:         713760 kB
LowFree:          250652 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                40 kB
Writeback:             0 kB
AnonPages:        261132 kB
Mapped:            66860 kB
Shmem:               348 kB
Slab:              23940 kB
SReclaimable:      13876 kB
SUnreclaim:        10064 kB
KernelStack:        5296 kB
PageTables:         8652 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      417808 kB
Committed_AS:    3873120 kB
VmallocTotal:     196608 kB
VmallocUsed:      163088 kB
VmallocChunk:      11204 kB
複製程式碼

8:

vmstat

[[email protected] ~]# vmstat -n 3       (每個3秒重新整理一次)
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b   swpd   free   buff cache   si   so    bi    bo   in    cs us sy id wa
1 0    144 186164 105252 2386848    0    0    18   166   83     2 48 21 31 0
2 0    144 189620 105252 2386848    0    0     0   177 1039 1210 34 10 56 0
0 0    144 214324 105252 2386848    0    0     0    10 1071   670 32 5 63 0
0 0    144 202212 105252 2386848    0    0     0   189 1035   558 20 3 77 0
2 0    144 158772 105252 2386848    0    0     0   203 1065 2832 70 14 15 0
vmstat所帶引數請用man vmstat檢視
Procs
r: 等待執行的程序數 b: 處在非中斷睡眠狀態的程序數 w: 被交換出去的可執行的程序數。此數由 linux 計算得出,但 linux 並不耗盡交換空間
Memory
swpd: 虛擬記憶體使用情況,單位:KB
free: 空閒的記憶體,單位KB
buff: 被用來做為快取的記憶體數,單位:KB
Swap
si: 從磁碟交換到記憶體的交換頁數量,單位:KB/秒
so: 從記憶體交換到磁碟的交換頁數量,單位:KB/秒
IO
bi: 傳送到塊裝置的塊數,單位:塊/秒
bo: 從塊裝置接收到的塊數,單位:塊/秒
System
in: 每秒的中斷數,包括時鐘中斷
cs: 每秒的環境(上下文)切換次數
CPU
按 CPU 的總使用百分比來顯示
us: CPU 使用時間
sy: CPU 系統使用時間
id: 閒置時間
準測
r,b≈0,
如果fre,將會出現連續不斷的頁面排程,將導致系統性能問題。
對於page列,re,pi,po,cy維持於比較穩定的狀態,PI率不超過5,如果有pagin發生,那麼關聯頁面必須先進行pageout
在記憶體相對緊張的環境下pagein會強制對不同的頁面進行steal操作。如果系統正在讀一個大批的永久頁面,你也許可以看到po和pi列

會出現不一致的增長,這種情景並不一定表明系統負載過重,但是有必要對應用程式的資料訪問模式進行見檢查。在穩定的情況下,掃描率和重置率幾乎相等,在
多個程序處理使用不同的頁面的情況下,頁面會更加不穩定和雜亂,這時掃描率可能會比重置率高出。
faults列,in,sy,cs會不斷跳躍,這裡沒有明確的限制,唯一的就是這些值最少大於100
cpu列,us,sys,id和wa也是不確定的,最理想的狀態是使cpu處於100%工作狀態,單這隻適合單使用者的情況下。
如果在多使用者環境中us+sys》80,程序就會在執行佇列中花費等待時間,響應時間和吞吐量就會下降。wa>40表明磁碟io沒有也許存在不合理的平衡,或者對磁碟操作比較頻繁,
vmstat各項:
procs:
r-->
在執行佇列中等待的程序數
b-->在等待io的程序數

w-->可以進入執行佇列但被替換的程序

memoy
swap-->現時可用的交換記憶體(k表示)

free-->空閒的記憶體(k表示)

pages
re--》回收的頁面

mf--》非嚴重錯誤的頁面

pi--》進入頁面數(k表示)

po--》出頁面數(k表示)

fr--》空餘的頁面數(k表示)

de--》提前讀入的頁面中的未命中數

sr--》通過時鐘演算法掃描的頁面

disk 顯示每秒的磁碟操作。 s表示scsi盤,0表示盤號

fault 顯示每秒的中斷數

in--》裝置中斷

sy--》系統中斷

cy--》cpu交換

cpu 表示cpu的使用狀態

cs--》使用者程序使用的時間

sy--》系統程序使用的時間

id--》cpu空閒的時間

如果 r經常大於 4 ,且id經常少於40,表示cpu的負荷很重。

如果pi,po 長期不等於0,表示記憶體不足。

如果disk 經常不等於0, 且在 b中的佇列 大於3, 表示 io效能不好。

Linux在具有高穩定性、可靠性的同時,具有很好的可伸縮性和擴充套件性,能夠針對不同的應用和硬體環境調整,優化出滿足當前應用需要的最佳效能。因此企業在維護Linux系統、進行系統調優時,瞭解系統性能分析工具是至關重要的。
  在Linux下有很多系統性能分析工具,比較常見的有top、free、ps、time、timex、uptime等。下文將介紹幾個較為重要的效能分析工具vmstat、iostat和sar及其使用。
  用vmstat監視記憶體使用情況

  vmstat是Virtual Meomory Statistics(虛擬記憶體統計)的縮寫,可對作業系統的虛擬記憶體、程序、CPU活動進行監視。它是對系統的整體情況進行統計,不足之處是無法對某個程序進行深入分析。

  vmstat的語法如下:

  vmstat [-V] [-n] [delay [count]]
  其中,-V表示打印出版本資訊;-n表示在週期性迴圈輸出時,輸出的頭部資訊僅顯示一次;delay是兩次輸出之間的延遲時間;count是指按照這個時間間隔統計的次數。對於vmstat輸出各欄位的含義,可執行man vmstat檢視

[email protected]:/ # procrank

相關推薦

[]獲取Android系統記憶體使用狀況方法

 (一)DDMS 的Heap Dump 1) Data Object:java object. 2) Class Object:object of type Class, e.g. what you'd get from java.lang.String.

獲取Android手機唯一id的方法

一般都是用IMEI 獲取方法 String imei =((TelephonyManager) context.getSystemService(TELEPHONY_SERVICE)).getDeviceId(); String IMEI =android

Android 隱士跳方式

1、只有 配置 action 進行跳轉 <intent-filter> <action android:name="testarouter"></action> <category android:name="android.i

Android中的Context獲取方法和區別

1、Context概念 Context,相信不管是第一天開發Android,還是開發Android的各種老鳥,對於Context的使用一定不陌生~~你在載入資源、啟動一個新的Activity、獲取系統服務、獲取內部檔案(夾)路徑、建立View操作時等都需要Context的參

jquery獲取元素left方式的異同

pan min blue 坐標 utf-8 text cli 包括 NPU offset()函數用於設置或返回當前匹配元素相對於當前文檔的偏移,也就是相對於當前文檔的坐標。該函數只對可見元素有效。 該函數返回一個坐標對象(Object),該對象有一個left屬性和top屬性

檢視CentOS系統版本和位數的方法

檢視系統版本: cat /etc/redhat-release cat /proc/version uname -a cat /etc/issue 檢視64位還是32位: g

MFC對話方塊的隱藏方法

修改CXXAPP中的InitInstance函式,將原來的模態對話方塊改為非模態對話方塊,及修改 view plaincopy to clipboardprint?INT_PTR nResponse = dlg.DoModal();  INT_PTR nResponse = dlg.DoMo

分散式訊息系統比較(old)

0 引言 隨著網際網路行業的發展和IT技術在行業內的廣泛應用,許多網際網路企業的伺服器每天產生海量的日誌。如天翼閱讀平臺每天產生的PV日誌有上億條;淘寶網每天的使用者行為日誌達數TB大小。如何高效地收

SpringBoot配置分析、獲取到SpringBoot配置檔案資訊以及獲取配置檔案資訊的方式

SpringBoot的預設的配置檔案application.properties配置檔案。 1、第一種方式直接獲取到配置檔案裡面的配置資訊。 第二種方式是通過將已經注入到容器裡面的bean,然後再注入Environment這個bean進行獲取。具體操作如下所示: 1 package com.bie

獲取Android系統的唯一識別碼

在計算機上,我們習慣用MAC地址來標誌一臺計算機。在Android裝置上,可以用IMIE或者Android ID來標誌一個裝置。 看一下Android上怎樣獲取這樣的資訊。 一個是Teleph

web頁面跳方式詳解

在做web開發中,頁面跳轉的方式有很多種,然而有些時候這些跳轉如何用到恰到好處卻很容易被忽視。 客戶端觸發跳轉有如下幾種 使用meta元資訊 ? 1 2 <!--如下表示

獲取spring環境上下文方法

  獲得spring裡註冊Bean的四種方法,特別是第三種方法,簡單: 一:方法一(多在struts框架中)繼承BaseDispatchAction   import com.mas.wawacommunity.wap.service.UserManager;   pu

Android關閉Activity或app的方法

1. finish()方法 該方法可以結束當前 Activity,但是如果你的App有很多 Activity 的話,使用該方法顯得有點捉襟見肘了。 另外,還有一個方法finishActivity (int requestCode) ,關於這個方法,先看看sdk的api說明吧! public void

Android延後處理事件的方法

 一、Handler和TimerTask相結合 1、首先定義TimerTask TimerTask task = new TimerTask(){ public void run() { Message message = new Message()

Android-框架-App工程結構搭建:常見Android程式碼架構分析

        架構是有關軟體整體結構與元件的抽象描述,用於指導大型軟體系統各個方面的設計。其是對儲存在Active Directory中的物件類別和屬性的描述。對於每一個物件類別來說,該架構定義了物件類必須具有的屬性,它也可以有附加的屬性,並且該物件可以是它的父物件

獲取request,session方法

struts2中幾種獲得request,session等物件的方法 1、通過ActionContext來獲得舉例程式碼如下:   情況1: ActionContext context = ActionContext.getContext(); Map requ

java(JSP)中獲取專案路徑方式

struts2設定了struts.multipart.saveDir後會在根目錄建立資料夾,這樣會涉及linux下的許可權問題, 最好不要設定,使用struts預設 需要使用路徑時,用下面的方法取得專案根目錄的絕對路徑(Tools為方法類) public static String getRootP

獲取Android系統的ROOT許可權

在 Android 開發中,有很多時候都需要獲得系統的 root 許可權,比如檢視某些應用的 SQLite Database 等等。這裡簡要地提供一些應用與思路。 PS:測試機用的是已經淘汰不用好久的小米2S,新手最好不要用好機子來root,萬一root壞了會很麻煩。

spring獲取 HttpServletRequest 物件的方式

以下的 request 例項都編號了,一共 4 種 方式[email protected] 方式2.public void Test(HttpServletRequest request1, HttpServletResponse resp,HttpSession

使用Java程式碼在應用層獲取Android系統屬性

之前使用Native程式碼的property_get()/property_set()來獲取Android系統屬性,現在需要改寫到Java上面,但是System.getProperty() / System.setProperty()所操作的屬性與上面的是不同的東西,而在an