• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    安卓應用日志的實現方法和裝置制造方法及圖紙

    技術編號:15762859 閱讀:465 留言:0更新日期:2017-07-05 23:09
    本申請提供一種安卓應用日志的實現方法,包括:將本應用的日志記錄寫入屬于本應用進程的存儲空間;讀取所述日志記錄,根據預定條件生成本應用的日志。通過本申請的技術方案,不必增加新的進程即可實現通過應用進程所在的設備或遠程查看應用的日志,實現簡單,節省了所在設備的資源,不會對耗電量造成影響。

    Method and device for implementing Android application log

    The invention provides a method, a Android application log includes: the application of writing log records storage space belongs to the application process; reading the log records, according to predetermined conditions the log application cost. Through the technical scheme of the application, do not need to add new process can be realized through the application process where the equipment or remote viewing application log, simple, save where the equipment resources, will not affect the power consumption.

    【技術實現步驟摘要】
    安卓應用日志的實現方法和裝置
    本申請涉及計算機及軟件
    ,尤其涉及一種安卓應用日志的實現方法和裝置。
    技術介紹
    在軟件開發和測試過程中,對于定位軟件中存在的問題,日志具有難以替代的作用。即使在軟件完成測試、正式發布之后,仍有可能存在缺陷,定位缺陷如果沒有日志來輔助,無異于盲人摸象。對Android(安卓)系統中的應用,可以使用系統提供的日志工具來產生應用的日志,但是需要將運行應用的移動設備通過USB(UniversalSerialBus,通用串行總線)等本地連接方式接入個人電腦后,利用個人電腦上的adb(androiddebugbridge,安卓調試橋)工具才能查看和分析這些日志?,F有技術還提供了另一種獲得應用日志的方案,運行一個日志獲取進程,通過調用Android系統提供的函數,實時向Android自帶的系統日志進程請求某個應用的日志,并且將獲得的日志傳遞給該應用的進程。這樣,查看日志不再需要本地連接個人電腦。但是,這種方案需要運行一個新的進程來在系統日志進程和應用進程之間傳遞日志,實現復雜;并且由于安卓的系統日志進程始終處于運行狀態,這個新的日志獲取進程也需要一直運行,要一直占用移動設備上有限的系統資源,并且使得移動設備耗電量增加。
    技術實現思路
    有鑒于此,本申請提供一種安卓應用日志的實現方法,包括:將本應用的日志記錄寫入屬于本應用進程的存儲空間;讀取所述日志記錄,根據預定條件生成本應用的日志。本申請還提供了一種安卓應用日志的實現裝置,包括:日志記錄寫入單元,用于將本應用的日志記錄寫入屬于本應用進程的存儲空間;應用日志生成單元,用于讀取所述日志記錄,根據預定條件生成本應用的日志。由以上技術方案可見,本申請的實施例中,應用進程將自身的日志記錄寫入到本應用進程的存儲空間,而非系統日志進程的存儲空間,應用進程可以利用這些日志記錄生成本應用的日志,從而不必增加新的進程即可實現通過應用進程所在的設備或遠程查看應用的日志,實現簡單,節省了所在設備的資源,不會對耗電量造成影響。附圖說明圖1是本申請實施例中一種安卓應用日志的實現方法的流程圖;圖2是本申請應用示例中一種應用日志生成過程的示意圖;圖3是終端或服務器的一種硬件結構圖;圖4是本申請實施例中一種安卓應用日志的實現裝置的邏輯結構圖。具體實施方式Android系統提供了自帶的日志實現機制。系統中運行的應用可以通過調用android.util.log類來輸出應用的日志記錄。android.util.log類提供了Log.v()、Log.d()、Log.i()、Log.w()、Log.e()、Log.println()等多個Java層方法,可以由應用進程直接調用,來將應用進程在運行中產生的日志記錄輸出到系統的日志設備文件中。系統的日志設備文件用來在系統中運行的所有應用進程與Android系統自帶的系統日志進程Logcat之間傳遞日志記錄。系統日志進程Logcat在日志設備文件中讀取所有應用的日志記錄,生成各個應用的日志,用戶可以通過運行在本地連接的個人電腦上adb工具來查看。而前述現有技術的實現方案中,則是運行一個新的進程,來向系統日志進程logcat請求屬于某個應用的日志,并對logcat進程是否生成了該應用的新日志進行實時監控,以及時獲得該應用的新日志。本申請的實施例提出一種新的安卓應用日志的實現方法,將應用進程產生的日志記錄的輸出,從現有技術中的系統日志設備文件修改為屬于本應用進程的存儲空間,由應用進程利用日志記錄來生成日志,這樣,不需額外的進程即可在應用所安裝的設備上或者遠程查看該應用的日志,避免了對設備系統資源和電量的消耗,以解決現有技術中存在的問題。本申請的實施例應用在運行Android系統應用程序的終端或服務器上,其中,終端可以是手機、平板電腦、PC(PersonalComputer,個人電腦)、筆記本等設備;服務器可以是物理或邏輯服務器;不做限定。本申請的實施例中,Android應用日志的實現方法的流程如圖1所示。步驟110,將本應用的日志記錄寫入屬于本應用進程的存儲空間。Android系統為每個進程分配了獨立的存儲空間,一個進程不能直接訪問屬于另一個進程的存儲空間。每個應用的日志記錄由該應用的進程來搜集,本專利技術的實施例中,應用進程在采集運行中的日志記錄后,將日志記錄寫入到Android系統為本應用進程分配的存儲空間中。根據Android系統所在設備的具體實現,存儲空間可以是內存、虛擬內存、閃存或其他存儲設備中的一段到幾段可讀寫的地址范圍。應用進程可以采用自定義的方式來采集本應用的日志記錄,并將采集到日志記錄寫入屬于本應用進程的存儲空間中,但是,這種方式改變了開發人員的習慣,并且增加了應用的編程復雜程度。為了避免上述兩個問題,在一種實現方式中,可以利用Android系統提供的native函數注冊機制來將應用進程日志記錄的輸出,由現有的設備文件修改為分配給本應用進程的存儲空間。Android系統中的java層方法在運行時,其調用的每個函數對應于Java虛擬機中的一個數據結構,該數據結構有屬性來表示該函數是否是一個native函數,并且包含一個指針來指向對應的native函數。Android的JNI提供了一個動態注冊native函數的方式,在動態注冊后Java虛擬機中該函數對應的數據結構中,指針會指向新注冊的native函數,這樣,在Java虛擬機將調用新注冊的native函數,而不會運行動態注冊前指針指向的native函數。本申請的實施例中,可以通過動態注冊用于日志記錄輸出的native函數,在新注冊的native函數中將日志記錄輸出到分配給本應用進程的存儲空間中,即可通過調用注冊后的native函數來將本應用的日志記錄寫入屬于本應用進程的存儲空間。這樣,只要修改并動態注冊用于日志記錄輸出的native函數,開發人員調用動態注冊后Android系統的日志工具即可實現本步驟。具體而言,應用進程可以通過調用Android系統提供的android.util.log類中的各種Java層方法,如Log.v()、Log.d()、Log.i()、Log.w()、Log.e()、Log.println()等來輸出應用運行中產生的日志記錄。android.util.log類中的上述Java層方法都通過調用JNI(JavaNativeInterface,Java本地接口)的native(本地)函數println_native來將應用的日志記錄輸出到系統的日志設備文件。這樣,修改println_native函數,將日志記錄的輸出從系統日志設備文件修改為應用進程的存儲空間后,動態注冊修改后的println_native函數,開發人員在編程時仍調用android.util.log類中的上述各種Java層方法來實現日志記錄的輸出,而該應用的日志記錄即可寫入到屬于該應用進程的存儲空間中。應用進程可以在屬于其的存儲空間中設置一段緩沖區,來存放在運行的過程中不斷產生的日志記錄。應用進程可以將本應用的日志記錄按照循環隊列寫入設置的緩沖區中。當有新的日志記錄產生時,應用進程將新的日志記錄寫入循環隊列當前寫指針指向的存儲位置,并將寫指針向循環隊列的尾部移動,如本文檔來自技高網...
    安卓應用日志的實現方法和裝置

    【技術保護點】
    一種安卓應用日志的實現方法,其特征在于,包括:將本應用的日志記錄寫入屬于本應用進程的存儲空間;讀取所述日志記錄,根據預定條件生成本應用的日志。

    【技術特征摘要】
    1.一種安卓應用日志的實現方法,其特征在于,包括:將本應用的日志記錄寫入屬于本應用進程的存儲空間;讀取所述日志記錄,根據預定條件生成本應用的日志。2.根據權利要求1所述的方法,其特征在于,所述方法還包括:將本應用的日志保存在本地或通過網絡傳輸給其他主機。3.根據權利要求1所述的方法,其特征在于,所述將本應用的日志記錄寫入屬于本應用進程的存儲空間,包括:在屬于本應用進程的存儲空間中設置緩沖區,將本應用的日志記錄按照循環隊列寫入所述緩沖區。4.根據權利要求3所述的方法,其特征在于,所述讀取日志記錄,根據預定條件生成本應用的日志,包括:當所述緩沖區中有未讀取的日志記錄時,讀取所述未讀取的日志記錄,根據預定條件生成本應用的日志。5.根據權利要求1所述的方法,其特征在于,所述預定條件包括預定過濾條件和/或預定分組條件;所述預定過濾條件用來對讀取的日志記錄進行篩選;所述預定分組條件用來將日志記錄歸屬為不同類型的日志。6.根據權利要求1所述的方法,其特征在于,所述將本應用的日志記錄寫入屬于本應用進程的存儲空間,包括:動態注冊用于日志記錄輸出的安卓本地native函數,調用注冊后的native函數將本應用的日志記錄寫入屬于本應用進程的存儲空間。7.根據權利要求6所述的方法,其特征在于,所述安卓native函數包括:println_native函數。...

    【專利技術屬性】
    技術研發人員:黎三平
    申請(專利權)人:阿里巴巴集團控股有限公司
    類型:發明
    國別省市:開曼群島,KY

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 无码的免费不卡毛片视频| 亚洲成a人片在线观看天堂无码| 国产一区二区三区无码免费| H无码精品3D动漫在线观看| 亚洲av成人无码久久精品| 亚洲精品久久久久无码AV片软件| 国产成人精品无码专区| 人妻丝袜中文无码av影音先锋专区| 亚洲AV无码AV男人的天堂不卡 | 亚洲的天堂av无码| 日韩A无码AV一区二区三区| 亚洲av永久无码精品天堂久久| 国产精品毛片无码| 无码办公室丝袜OL中文字幕| 免费A级毛片无码A∨| 国产精品无码v在线观看| 无码日本精品XXXXXXXXX| 久久久久亚洲AV无码专区体验| 久久伊人亚洲AV无码网站| 精品久久久久久中文字幕无码| 无码囯产精品一区二区免费| AV无码小缝喷白浆在线观看| 国产精品无码av天天爽| 蜜色欲多人AV久久无码| 天堂Av无码Av一区二区三区| 色欲A∨无码蜜臀AV免费播| 亚洲中文久久精品无码| 国产成人精品无码一区二区三区| 成人免费一区二区无码视频| 中文字幕人成无码人妻| 亚洲av极品无码专区在线观看| 无码中文字幕日韩专区 | 亚洲成av人片不卡无码| 亚洲AV无码一区二区二三区入口| 国产亚洲美日韩AV中文字幕无码成人| 曰韩无码无遮挡A级毛片| 无码少妇一区二区浪潮免费| 97在线视频人妻无码| 国产色无码精品视频国产| 国产做无码视频在线观看| 免费无码又爽又刺激高潮的视频|