<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                DiskStatsService代碼非常簡單,不過也有一個很有意思的地方,例如: DiskStatsService.java ~~~ public class DiskStatsService extends Binder ~~~ DiskStatsService從Binder派生,卻沒有實現任何接口,也就是說,DiskStatsService沒有任何業務函數可供調用。為什么系統會存在這樣的服務呢? 為了解釋這個問題,有必要先把系統中一個很重要的命令dumpsys請出來。正如其名,這個命令用于打印系統中指定服務的信息,代碼如下: **dumpsys.cpp** ~~~ int main(int argc, char* const argv[]) { //先獲取與ServiceManager進程通信的BpServiceManager對象 sp<IServiceManager> sm = defaultServiceManager(); fflush(stdout); Vector<String16> services; Vector<String16> args; if (argc== 1) {//如果輸入參數個數為1,則先查詢在SM中注冊的所有Service services = sm->listServices(); //將service排序 services.sort(sort_func); args.add(String16("-a")); } else { //指定查詢某個service services.add(String16(argv[1])); //保存剩余參數,以后可以傳給service的dump函數 for(int i=2; i<argc; i++) { args.add(String16(argv[i])); } } constsize_t N = services.size(); ...... for(size_t i=0; i<N; i++) { sp<IBinder> service = sm->checkService(services[i]); ...... //通過Binder調用該service的dump函數,將args也傳給dump函數 int err = service->dump(STDOUT_FILENO,args); ...... } return0; } ~~~ 從上面代碼可知,dumpsys通過Binder調用某個Service的dump函數。那么 “dumpsys diskstats”的輸出會是什么呢?馬上來試試,結果如圖3-3所示。 :-: ![](http://img.blog.csdn.net/20150803104544553?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) 圖3-3 dumpsys diskstats的結果圖示 圖3-3說明了執行“dumpsysdiskstats”打印了系統中內部存儲設備的使用情況。dumpsys是工作中常用的命令,建議讀者掌握它的用法。 再來看DiskStatsService的dump函數,代碼如下: **DiskStatsService.java** ~~~ protected void dump(FileDescriptor fd, PrintWriterpw, String[] args) { byte[] junk = new byte[512]; for(int i = 0; i < junk.length; i++) junk[i] = (byte) i; //輸出/data/system/perftest.tmp文件信息,輸出后即刪除該文件 //目前還不清楚這個文件由誰生成。從名字上看應該和性能測試有關 Filetmp = new File(Environment.getDataDirectory(), "system/perftest.tmp"); FileOutputStream fos = null; IOException error = null; longbefore = SystemClock.uptimeMillis(); try{ fos = new FileOutputStream(tmp); fos.write(junk); } ...... longafter = SystemClock.uptimeMillis(); if(tmp.exists()) tmp.delete(); if(error != null) { ...... }else { pw.print("Latency: "); pw.print(after - before); pw.println("ms [512B Data Write]"); } //打印內部存儲設備各個分區的信息 reportFreeSpace(Environment.getDataDirectory(), "Data", pw); reportFreeSpace(Environment.getDownloadCacheDirectory(),"Cache", pw); reportFreeSpace(new File("/system"), "System", pw); //有些廠商還會將/proc/yaffs信息打印出來 } ~~~ 從前述代碼中可發現,DiskStatsService沒有實現任何業務接口,似乎只是為了調試而存在。所以筆者認為,DiskStatsService的功能完全可以被整合到后面即將介紹的DeviceStorageManagerService類中。總之,本節最重要的就是dumpsys這個命令了,建議讀者一定要掌握它的用法。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看