1. 求織田NON漫畫全集
望及時採納,12點以後開始清理所有分享
解壓碼就是名字
2. 電腦藍屏後顯示「PAGE_FAULT_IN_NONPAGEG_AREA是怎麼回事」電腦高手請幫忙
◆錯誤分析:有問題的內存(包括屋裡內存、二級緩存、顯存)、不兼容的軟體(主要是遠程式控制制和殺毒軟體)、損壞的NTFS卷以及有問題的硬體(比如CI插卡本身已損壞)等都會引發這個錯誤.
◇解決方案:
1.卸掉所有的新近安裝的硬體.
2.運行由計算機製造商提供的所有系統診斷軟體.尤其是內存檢查.
3.檢查是否正確安裝了所有新硬體或軟體,如果這是一次全新安裝,請與硬體或軟體製造商聯系,獲得可能需要的任何Windows更新或驅動程序.
4.禁用或卸載所有的反病毒程序.
5.禁用BIOS內存選項,例如cache或shadow
方案里並非每一條都要做,只是每一條都有可能!藍屏代碼50是我看到現在最麻煩的,可能引起的原因非常多!即使那五條你都做了可能都解決不了,至少我以前解決過一次並不在這幾條之中,你就先試試看吧!
3. 如何解壓文件名是UTF8編碼的壓縮包
UTF8其實和Unicode是同類,就是在編碼方式上不同!
首先UTF8編碼後的大小是不一定,不像Unicode編碼後的大小是一樣的!
我們先來看Unicode的編碼:一個英文字母 「a」 和 一個漢字 「好」,編碼後都是佔用的空間大小是一樣的,都是兩個位元組!
而UTF8編碼:一個英文字母「a」 和 一個漢字 「好」,編碼後佔用的空間大小就不樣了,前者是一個位元組,後者是三個位元組!
現在就讓我們來看看UTF8編碼的原理吧:
因為一個字母還有一些鍵盤上的符號加起來只用二進制七位就可以表示出來,而一個位元組就是八位,所以UTF8就用一個位元組來表式字母和一些鍵盤上的符號。然而當我們拿到被編碼後的一個位元組後怎麼知道它的組成?它有可能是英文字母的一個位元組,也有可能是漢字的三個位元組中的一個位元組!所以,UTF8是有標志位的!
當要表示的內容是 7位 的時候就用一個位元組:0******* 第一個0為標志位,剩下的空間正好可以表示ASCII 0-127 的內容。
當要表示的內容在 8 到 11 位的時候就用兩個位元組:110***** 10****** 第一個位元組的110和第二個位元組的10為標志位。
當要表示的內容在 12 到 16 位的時候就用三個位元組:1110***** 10****** 10****** 和上面一樣,第一個位元組的1110和第二、三個位元組的10都是標志位,剩下的占湔�每梢員硎競鶴幀?BR>
以此類推:
四個位元組:11110**** 10****** 10****** 10******
五個位元組:111110*** 10****** 10****** 10****** 10******
六個位元組:1111110** 10****** 10****** 10****** 10****** 10******
UTF-7:A Mail-Safe Transformation Format of Unicode(RFC1642)。這是一種使用 7 位 ASCII 碼對 Unicode 碼進行轉換的編碼。它的設計目的仍然是為了在只能傳遞 7 為編碼的郵件網關中傳遞信息。 UTF-7 對英語字母、數字和常見符號直接顯示,而對其他符號用修正的 Base64 編碼。符號 + 和 - 號控制編碼過程的開始和暫停。所以亂碼中如果夾有英文單詞,並且相伴有 + 號和 - 號,這就有可能是 UTF-7 編碼。
關於UTF7的更多資料如下(都是英語的,如果想具體了解再看):
UTF-7
A Mail-Safe Transformation Format of Unicode
Status of this Memo
This memo provides information for the Internet community. This memo
does not specify an Internet standard of any kind. Distribution of
this memo is unlimited.
Abstract
The Unicode Standard, version 2.0, and ISO/IEC 10646-1:1993(E) (as
amended) jointly define a character set (hereafter referred to as
Unicode) which encompasses most of the world's writing systems.
However, Internet mail (STD 11, RFC 822) currently supports only 7-
bit US ASCII as a character set. MIME (RFC 2045 through 2049) extends
Internet mail to support different media types and character sets,
and thus could support Unicode in mail messages. MIME neither defines
Unicode as a permitted character set nor specifies how it would be
encoded, although it does provide for the registration of additional
character sets over time.
This document describes a transformation format of Unicode that
contains only 7-bit ASCII octets and is intended to be readable by
humans in the limiting case that the document consists of characters
from the US-ASCII repertoire. It also specifies how this
transformation format is used in the context of MIME and RFC 1641,
"Using Unicode with MIME".
Motivation
Although other transformation formats of Unicode exist and could
conceivably be used in this context (most notably UTF-8, also known
as UTF-2 or UTF-FSS), they suffer the disadvantage that they use
octets in the range decimal 128 through 255 to encode Unicode
characters outside the US-ASCII range. Thus, in the context of mail,
those octets must themselves be encoded. This requires putting text
through two successive encoding processes, and leads to a significant
expansion of characters outside the US-ASCII range, putting non-
English speakers at a disadvantage. For example, using UTF-8 together
with the Quoted-Printable content transfer encoding of MIME
represents US-ASCII characters in one octet, but other characters may
require up to nine octets.
Overview
UTF-7 encodes Unicode characters as US-ASCII octets, together with
shift sequences to encode characters outside that range. For this
purpose, one of the characters in the US-ASCII repertoire is reserved
for use as a shift character.
Many mail gateways and systems cannot handle the entire US-ASCII
character set (those based on EBCDIC, for example), and so UTF-7
contains provisions for encoding characters within US-ASCII in a way
that all mail systems can accomodate.
UTF-7 should normally be used only in the context of 7 bit
transports, such as mail. In other contexts, straight Unicode or
UTF-8 is preferred.
See RFC 1641, "Using Unicode with MIME" for the overall specification
on usage of Unicode transformation formats with MIME.
Definitions
First, the definition of Unicode:
The 16 bit character set Unicode is defined by "The Unicode
Standard, Version 2.0". This character set is identical with the
character repertoire and coding of the international standard
ISO/IEC 10646-1:1993(E); Coded Representation Form=UCS-2;
Subset=300; Implementation Level=3, including the first 7
amendments to 10646 plus editorial corrections.
Note. Unicode 2.0 further specifies the use and interaction of
these character codes beyond the ISO standard. However, any valid
10646 sequence is a valid Unicode sequence, and vice versa;
Unicode supplies interpretations of sequences on which the ISO
standard is silent as to interpretation.
Next, some handy definitions of US-ASCII character subsets:
Set D (directly encoded characters) consists of the following
characters (derived from RFC 1521, Appendix B, which no longer
appears in RFC 2045): the upper and lower case letters A through Z
and a through z, the 10 digits 0-9, and the following nine special
characters (note that "+" and "=" are omitted):
Character ASCII & Unicode Value (decimal)
' 39
( 40
) 41
, 44
- 45
. 46
/ 47
: 58
? 63
Set O (optional direct characters) consists of the following
characters (note that "\" and "~" are omitted):
Character ASCII & Unicode Value (decimal)
! 33
" 34
# 35
$ 36
% 37
& 38
* 42
; 59
< 60
= 61
> 62
@ 64
[ 91
] 93
^ 94
_ 95
' 96
{ 123
| 124
} 125
Rationale. The characters "\" and "~" are omitted because they are
often redefined in variants of ASCII.
Set B (Modified Base 64) is the set of characters in the Base64
alphabet defined in RFC 2045, excluding the pad character "="
(decimal value 61).
Rationale. The pad character = is excluded because UTF-7 is designed
for use within header fields as set forth in RFC 2047. Since the only
readable encoding in RFC 2047 is "Q" (based on RFC 2045's Quoted-
Printable), the "=" character is not available for use (without a lot
of escape sequences). This was very unfortunate but unavoidable. The
"=" character could otherwise have been used as the UTF-7 escape
character as well (rather than using "+").
Note that all characters in US-ASCII have the same value in Unicode
when zero-extended to 16 bits.
UTF-7 Definition
A UTF-7 stream represents 16-bit Unicode characters using 7-bit US-
ASCII octets as follows:
Rule 1: (direct encoding) Unicode characters in set D above may be
encoded directly as their ASCII equivalents. Unicode characters in
Set O may optionally be encoded directly as their ASCII
equivalents, bearing in mind that many of these characters are
illegal in header fields, or may not pass correctly through some
mail gateways.
Rule 2: (Unicode shifted encoding) Any Unicode character sequence
may be encoded using a sequence of characters in set B, when
preceded by the shift character "+" (US-ASCII character value
decimal 43). The "+" signals that subsequent octets are to be
interpreted as elements of the Modified Base64 alphabet until a
character not in that alphabet is encountered. Such characters
include control characters such as carriage returns and line
feeds; thus, a Unicode shifted sequence always terminates at the
of a line. As a special case, if the sequence terminates with the
character "-" (US-ASCII decimal 45) then that character is
absorbed; other terminating characters are not absorbed and are
processed normally.
Note that if the first character after the shifted sequence is "-"
then an extra "-" must be present to terminate the shifted
sequence so that the actual "-" is not itself absorbed.
Rationale. A terminating character is necessary for cases where
the next character after the Modified Base64 sequence is part of
character set B or is itself the terminating character. It can
also enhance readability by delimiting encoded sequences.
Also as a special case, the sequence "+-" may be used to encode
the character "+". A "+" character followed immediately by any
character other than members of set B or "-" is an ill-formed
sequence.
Unicode is encoded using Modified Base64 by first converting
Unicode 16-bit quantities to an octet stream (with the most
significant octet first). Surrogate pairs (UTF-16) are converted
by treating each half of the pair as a separate 16 bit quantity
(i.e., no special treatment). Text with an odd number of octets is
ill-formed. ISO 10646 characters outside the range addressable via
surrogate pairs cannot be encoded.
Rationale. ISO/IEC 10646-1:1993(E) specifies that when characters
the UCS-2 form are serialized as octets, that the most significant
octet appear first. This is also in keeping with common network
practice of choosing a canonical format for transmission.
Rationale. The policy for code point allocation within ISO 10646
and Unicode is that the repertoires be kept synchronized. No code
points will be allocated in ISO 10646 outside the range
addressable by surrogate pairs.
Next, the octet stream is encoded by applying the Base64 content
transfer encoding algorithm as defined in RFC 2045, modified to
omit the "=" pad character. Instead, when encoding, zero bits are
added to pad to a Base64 character boundary. When decoding, any
bits at the end of the Modified Base64 sequence that do not
constitute a complete 16-bit Unicode character are discarded. If
such discarded bits are non-zero the sequence is ill-formed.
Rationale. The pad character "=" is not used when encoding
Modified Base64 because of the conflict with its use as an escape
character for the Q content transfer encoding in RFC 2047 header
fields, as mentioned above.
Rule 3: The space (decimal 32), tab (decimal 9), carriage return
(decimal 13), and line feed (decimal 10) characters may be
directly represented by their ASCII equivalents. However, note
that MIME content transfer encodings have rules concerning the use
of such characters. Usage that does not conform to the
restrictions of RFC 822, for example, would have to be encoded
using MIME content transfer encodings other than 7bit or 8bit,
such as quoted-printable, binary, or base64.
Given this set of rules, Unicode characters which may be encoded via
rules 1 or 3 take one octet per character, and other Unicode
characters are encoded on average with 2 2/3 octets per character
plus one octet to switch into Modified Base64 and an optional octet
to switch out.
Example. The Unicode sequence "A<NOT IDENTICAL TO><ALPHA>."
(hexadecimal 0041,2262,0391,002E) may be encoded as follows:
A+ImIDkQ.
Example. The Unicode sequence "Hi Mom -<WHITE SMILING FACE>-!"
(hexadecimal 0048, 0069, 0020, 004D, 006F, 006D, 0020, 002D, 263A,
002D, 0021) may be encoded as follows:
Hi Mom -+Jjo--!
Example. The Unicode sequence representing the Han characters for
the Japanese word "nihongo" (hexadecimal 65E5,672C,8A9E) may be
encoded as follows:
+ZeVnLIqe-
4. Mⅰgnon:n『t是什麼意思
大家好,早上好的意思
5. 裝個N卡驅動,出現non7 zip archive怎麼回事
裝個N卡驅動,出現non7 zip archive說明安裝失敗;
N卡驅動也就是顯卡驅動;許多顯卡,特別是Matrox的顯卡,需要在BIOS中設置相關項,才能保證顯卡驅動的正確安裝。所以在啟動機器的時候,按「Del」鍵進入BIOS設置,找到「ChipsetFeaturesSetup」選項,將裡面的「AssignIRQToVGA」設置為「Enable」,然後保存退出。
如果此項設置為「Disable」一般都無法正確安裝其驅動。另外,對於ATI顯卡,首先需要將顯卡設置為標准VGA顯卡後再安裝附帶驅動。
驅動程序的安裝需要按一定的順序進行,否則也可能導致安裝失敗。而對於顯卡的安裝,值得注意的是,在安裝好操作系統以後,一定要安裝主板晶元組補丁程序,特別是對於採用VIA晶元組的主板而言,一定要記住安裝主板最新的4IN1補丁程序。
(5)non合集27g解壓碼擴展閱讀:
一般會在電腦配置的附件光碟中帶有顯卡的驅動程序,可以直接安裝。
在沒有附件光碟的情況下安裝顯卡驅動,則先要確定顯卡的品牌與型號的,如果記不得了,就打開機箱看那個豎插在主板上的較大板子(一般顯卡有很大的散熱片或風扇)上的型號品牌。如果是集成的顯卡(在主板上看不到前面說的那樣的電路板),就看主板上的型號品牌,記下來。然後到網路上搜索型號品牌,下載相應驅動程序並安裝就可以了。
也有一些軟體可以自動直接檢測電腦所需的驅動程序,按照其操作流程使用即可。
需要注意的是,有些游戲需要特殊顯卡支持,所以需要首先確定游戲不是非常新的或者顯卡不是特別陳舊。
6. 在英文系統使用winrar查看/解壓zip當中中文文件名亂碼的問題
你只需要更改非unicode應用程序的語言 讓系統能識別中文編碼就行了
把Language for non-Unicode programs改成可以識別中文就行了
打開Control Panel→Region選項里
Administrative →Language for non-Unicode programs
改成Chinese (simplified,PRC)
-----------------------------------------------------------------------
之後會提示讓你重啟電腦,之後rar和zip壓縮包里的中文就不會亂碼了
-----------------------------------------------------------------------
7. 為什麼我下載的文件在安裝的時候說是non 7-zip archive,但是我已經下載了解壓文件,而且
用winrar4.0
8. 無聊之作 對 手游十萬個為什麼 的解包分析筆記 游戲引
從神之刃開始,對這個游戲的引擎就充滿了好奇,要什麼樣的手法把一個游戲包減少到40M。雖然有些童鞋總喜歡說無非就是壓縮資源減少圖片大小毫無技術含量這等話,但我們公司是做不到的。十萬個為什麼手游版的出現,讓我想盡自己能力去分析看看。
文章出自
從網上下載十萬個為什麼的 APK 安裝包後,直接改成ZIP進行解壓。因為網上文章說神之刃 是 妙趣橫生 的自研引擎,所以直接來看Libs文件夾吧。
Libs文件夾裡面有4個不同CPU類型的子文件夾,只有 armeabi-v7a 中存在引擎相關的SO動態鏈接庫文件。
無聊之作 對 手游十萬個為什麼(神之刃) 的解包分析筆記 (游戲引
看到這五個SO文件,給我這個半吊子游戲開發者造成的迷惑來說不亞於太陽從西邊出來。
為什麼這么說?
libcheck.so libentryex.so 這兩個應該是騰訊的三方SDK所有。
libgnustl_shared.so 這個文件應該是使用了C++所以會有。
那麼游戲所有的就只有 libmqcj.so libcompress.so 這兩個動態鏈接庫了。
直覺告訴我,,這兩個動態鏈接庫不可能是游戲主要的動態鏈接庫文件。
至於SO文件的大小,Unity的 libunity.so + libmono.so 是14M,就連NDK的Sample都有47KB。難道十萬個為什麼整個游戲框架只有58+6KB?這明顯不可能的。
文章出自
進一步,反編譯APK,查看Manifest文件和java源代碼。
上面是十萬個為什麼的Manifest文件,從中可以看出:
com.mqgame.lib.SLaunchActivity 這個是游戲的啟動Activity 。
com.mqgame.lib.SNativeActivity 這個是NativiActivity ,並且指定動態鏈接庫 mqcj ,就是上面6KB的那個文件。
來分析反編譯出來的Java源代碼。
首先來看 com.mqgame.lib.SLaunchActivity ,這個Activity 在游戲中就是 資源准備的界面。女王大人。
無聊之作 對 手游十萬個為什麼(神之刃) 的解包分析筆記 (游戲引
if (localIterator.hasNext()) { localRunningTaskInfo = (ActivityManager.RunningTaskInfo)localIterator.next(); if ((localRunningTaskInfo.topActivity.getPackageName().equals(getPackageName())) || (localRunningTaskInfo.baseActivity.getPackageName().equals(getPackageName()))) if ((localRunningTaskInfo.topActivity.getClassName().equals("com.mqgame.lib.SNativeActivity")) || (localRunningTaskInfo.baseActivity.getClassName().equals("com.mqgame.lib.SNativeActivity"))) if (localRunningTaskInfo.numRunning >= 1) { Log.d("sog_debug", "SOGActivity:Relaunch native"); localIntent2 = getIntent(); if (localIntent2 != null) { localIntent2.setClass(this, SNativeActivity.class); label194: localIntent2.setFlags(131072); startActivity(localIntent2); finish(); } } }
然後在載入任務執行完畢後,跳轉到 SNativeActivity 。
在SNativeActivity中看到有一個 preRun函數
文章出自
public boolean preRun() { int i = 1; label323: int j; do { try { LinkedList localLinkedList = new LinkedList(); localLinkedList.add(new String("gnustl_shared")); localLinkedList.add(new String("openal")); localLinkedList.add(new String("compress")); localLinkedList.add(new String("script")); localLinkedList.add(new String("iconv")); localLinkedList.add(new String("ogg")); localLinkedList.add(new String("vorbis")); localLinkedList.add(new String("vorbisfile")); localLinkedList.add(new String("curl")); localLinkedList.add(new String("autoupdater")); localLinkedList.add(new String("speex")); localLinkedList.add(new String("mqcj")); Iterator localIterator = localLinkedList.iterator(); while (true) { if (!localIterator.hasNext()) break label323; String str1 = (String)localIterator.next(); str2 = new String(SUtility.getLibPath() + File.separator + "lib" + str1 + ".so"); if (new File(str2).exists()) break; System.loadLibrary(str1); } } catch (Exception localException) { while (true) { String str2; localException.printStackTrace(); SUtility.appendLog(localException.toString()); i = 0; return i; System.load(str2); } } catch (Error localError) { localError.printStackTrace(); SUtility.appendLog(localError.toString()); return i; } VoiceManager.init(this); SUtility.bNativeEntered = true; j = Settings.System.getInt(getContentResolver(), "accelerometer_rotation", 0); } while ((Build.VERSION.SDK_INT < 9) || (j != i)); setRequestedOrientation(6); return i; }
從代碼上來理解,應該存在兩個目錄用於存放SO文件。
首先從默認的Libs目錄查找,然後從第二個Libs文件夾中尋找是不是有這個SO文件,如果有就使用第二個的SO。於是開始在SDK卡中尋找。卻沒有搜索到,看樣子並沒有解壓到SDK卡中。那就應該是解壓到了APP的默認應用文件夾了。於是去找了一個Root的手機來安裝游戲。
。。。。。。。文章出自
在玩游戲的時候正好電腦上開著Eclipse,看到了以下Log:
03-29 16:14:07.582: D/SOG(8950): Ready to show Game 03-29 16:14:07.587: D/dalvikvm(8950): Trying to load lib /data/app-lib/com.linekong.cjad.lk-1/libgnustl_shared.so 0x421565f0 03-29 16:14:07.597: D/dalvikvm(8950): Added shared lib /data/app-lib/com.linekong.cjad.lk-1/libgnustl_shared.so 0x421565f0 03-29 16:14:07.597: D/dalvikvm(8950): No JNI_OnLoad found in /data/app-lib/com.linekong.cjad.lk-1/libgnustl_shared.so 0x421565f0, skipping init 03-29 16:14:07.597: D/SOG_DEBUG(8950): Loading liberary from inner gnustl_shared 03-29 16:14:07.597: D/dalvikvm(8950): Trying to load lib /data/app-lib/com.linekong.cjad.lk-1/libcompress.so 0x421565f0 03-29 16:14:07.602: D/dalvikvm(2087): GC_CONCURRENT freed 24K, 28% free 17104K/23584K, paused 2ms+2ms, total 22ms 03-29 16:14:07.602: D/dalvikvm(2087): WAIT_FOR_CONCURRENT_GC blocked 19ms 03-29 16:14:07.607: D/dalvikvm(8950): Added shared lib /data/app-lib/com.linekong.cjad.lk-1/libcompress.so 0x421565f0 03-29 16:14:07.607: D/dalvikvm(8950): No JNI_OnLoad found in /data/app-lib/com.linekong.cjad.lk-1/libcompress.so 0x421565f0, skipping init 03-29 16:14:07.607: D/SOG_DEBUG(8950): Loading liberary from inner compress 03-29 16:14:07.607: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libcurl.so 0x421565f0 03-29 16:14:07.607: D/dalvikvm(8950): GC_CONCURRENT freed 253K, 6% free 5156K/5480K, paused 6ms+2ms, total 17ms 03-29 16:14:07.612: D/dalvikvm(8950): Added shared lib /data/data/com.linekong.cjad.lk/files/libs/libcurl.so 0x421565f0 03-29 16:14:07.612: D/dalvikvm(8950): No JNI_OnLoad found in /data/data/com.linekong.cjad.lk/files/libs/libcurl.so 0x421565f0, skipping init 03-29 16:14:07.612: D/SOG_DEBUG(8950): Loading liberary from path:/data/data/com.linekong.cjad.lk/files/libs/libcurl.so 03-29 16:14:07.612: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libautoupdater.so 0x421565f0 03-29 16:14:07.642: D/dalvikvm(8950): Added shared lib /data/data/com.linekong.cjad.lk/files/libs/libautoupdater.so 0x421565f0 03-29 16:14:07.642: D/dalvikvm(8950): No JNI_OnLoad found in /data/data/com.linekong.cjad.lk/files/libs/libautoupdater.so 0x421565f0, skipping init 03-29 16:14:07.642: D/SOG_DEBUG(8950): Loading liberary from path:/data/data/com.linekong.cjad.lk/files/libs/libautoupdater.so 03-29 16:14:07.677: D/libEGL(8950): loaded /system/lib/egl/libEGL_mali.so 03-29 16:14:07.677: D/libEGL(8950): loaded /system/lib/egl/libGLESv1_CM_mali.so 03-29 16:14:07.682: D/libEGL(8950): loaded /system/lib/egl/libGLESv2_mali.so 03-29 16:14:07.687: E/(8950): Device driver API match 03-29 16:14:07.687: E/(8950): Device driver API version: 401 03-29 16:14:07.687: E/(8950): User space API version: 401 03-29 16:14:07.687: E/(8950): mali: REVISION=linux-r4p0-00rel0 BUILD_DATE=Tue Jul 8 00:03:51 CST 2014 03-29 16:14:07.687: W/linker(8950): libion.so has text relocations. This is wasting memory and is a security risk. Please fix. 03-29 16:14:07.687: V/WindowAnimator(1979): No window is displayed, unset the SET_ORIENTATION_CHANGE_COMPLETE flag 03-29 16:14:07.742: D/OpenGLRenderer(8950): Enabling debug mode 0 03-29 16:14:07.757: D/SOG(8950): Total:1090 Sub:1080 SceenX:1280 SceenY:800 dX:76 dy:43 nProcess X:160 nProcess Width:770 LocaltionShow:0 03-29 16:14:07.782: D/dalvikvm(8950): GC_FOR_ALLOC freed 64K, 7% free 5140K/5480K, paused 9ms, total 9ms 03-29 16:14:07.787: I/dalvikvm-heap(8950): Grow heap (frag case) to 6.647MB for 1638544-byte allocation 03-29 16:14:07.797: D/dalvikvm(8950): GC_FOR_ALLOC freed <1K, 5% free 6740K/7084K, paused 13ms, total 13ms 03-29 16:14:07.812: D/dalvikvm(8950): GC_CONCURRENT freed 2K, 5% free 6771K/7084K, paused 1ms+2ms, total 16ms 03-29 16:14:07.817: D/sog_debug(8950): launch service 03-29 16:14:07.817: D/SOG(8661): sog service shutdown 03-29 16:14:07.817: D/SOG(8661): sog service startuping 03-29 16:14:07.817: D/Service Loading(8661): /data/data/com.linekong.cjad.lk/files/libs/libgnustl_shared.so 03-29 16:14:07.817: D/dalvikvm(8661): Trying to load lib /data/app-lib/com.linekong.cjad.lk-1/libgnustl_shared.so 0x421512b0 03-29 16:14:07.817: D/dalvikvm(8661): Shared lib '/data/app-lib/com.linekong.cjad.lk-1/libgnustl_shared.so' already loaded in same CL 0x421512b0 03-29 16:14:07.817: D/Service Loading(8661): /data/data/com.linekong.cjad.lk/files/libs/libcompress.so 03-29 16:14:07.817: D/dalvikvm(8661): Trying to load lib /data/app-lib/com.linekong.cjad.lk-1/libcompress.so 0x421512b0 03-29 16:14:07.817: D/dalvikvm(8661): Shared lib '/data/app-lib/com.linekong.cjad.lk-1/libcompress.so' already loaded in same CL 0x421512b0 03-29 16:14:07.817: D/Service Loading(8661): /data/data/com.linekong.cjad.lk/files/libs/libscript.so 03-29 16:14:07.822: D/dalvikvm(8661): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libscript.so 0x421512b0 03-29 16:14:07.822: D/sog_debug(8950): launch game 03-29 16:14:07.822: D/dalvikvm(8661): Shared lib '/data/data/com.linekong.cjad.lk/files/libs/libscript.so' already loaded in same CL 0x421512b0 03-29 16:14:07.822: D/Service Loading(8661): /data/data/com.linekong.cjad.lk/files/libs/libiconv.so 03-29 16:14:07.822: D/dalvikvm(8661): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libiconv.so 0x421512b0 03-29 16:14:07.822: D/dalvikvm(8661): Shared lib '/data/data/com.linekong.cjad.lk/files/libs/libiconv.so' already loaded in same CL 0x421512b0 03-29 16:14:07.822: D/Service Loading(8661): /data/data/com.linekong.cjad.lk/files/libs/libcurl.so 03-29 16:14:07.822: D/dalvikvm(8661): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libcurl.so 0x421512b0 03-29 16:14:07.822: D/dalvikvm(8661): Shared lib '/data/data/com.linekong.cjad.lk/files/libs/libcurl.so' already loaded in same CL 0x421512b0 03-29 16:14:07.822: D/Service Loading(8661): /data/data/com.linekong.cjad.lk/files/libs/libpush.so 03-29 16:14:07.822: D/dalvikvm(8661): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libpush.so 0x421512b0 03-29 16:14:07.822: D/dalvikvm(8661): Shared lib '/data/data/com.linekong.cjad.lk/files/libs/libpush.so' already loaded in same CL 0x421512b0 03-29 16:14:08.417: D/dalvikvm(8950): Trying to load lib /data/app-lib/com.linekong.cjad.lk-1/libgnustl_shared.so 0x421565f0 03-29 16:14:08.417: D/dalvikvm(8950): Shared lib '/data/app-lib/com.linekong.cjad.lk-1/libgnustl_shared.so' already loaded in same CL 0x421565f0 03-29 16:14:08.417: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libopenal.so 0x421565f0 03-29 16:14:08.422: D/dalvikvm(8950): Added shared lib /data/data/com.linekong.cjad.lk/files/libs/libopenal.so 0x421565f0 03-29 16:14:08.422: D/dalvikvm(8950): Trying to load lib /data/app-lib/com.linekong.cjad.lk-1/libcompress.so 0x421565f0 03-29 16:14:08.422: D/dalvikvm(8950): Shared lib '/data/app-lib/com.linekong.cjad.lk-1/libcompress.so' already loaded in same CL 0x421565f0 03-29 16:14:08.422: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libscript.so 0x421565f0 03-29 16:14:08.422: D/dalvikvm(8950): Added shared lib /data/data/com.linekong.cjad.lk/files/libs/libscript.so 0x421565f0 03-29 16:14:08.422: D/dalvikvm(8950): No JNI_OnLoad found in /data/data/com.linekong.cjad.lk/files/libs/libscript.so 0x421565f0, skipping init 03-29 16:14:08.422: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libiconv.so 0x421565f0 03-29 16:14:08.422: D/dalvikvm(8950): Added shared lib /data/data/com.linekong.cjad.lk/files/libs/libiconv.so 0x421565f0 03-29 16:14:08.422: D/dalvikvm(8950): No JNI_OnLoad found in /data/data/com.linekong.cjad.lk/files/libs/libiconv.so 0x421565f0, skipping init 03-29 16:14:08.422: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libogg.so 0x421565f0 03-29 16:14:08.427: D/dalvikvm(8950): Added shared lib /data/data/com.linekong.cjad.lk/files/libs/libogg.so 0x421565f0 03-29 16:14:08.427: D/dalvikvm(8950): No JNI_OnLoad found in /data/data/com.linekong.cjad.lk/files/libs/libogg.so 0x421565f0, skipping init 03-29 16:14:08.427: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libvorbis.so 0x421565f0 03-29 16:14:08.427: D/dalvikvm(8950): Added shared lib /data/data/com.linekong.cjad.lk/files/libs/libvorbis.so 0x421565f0 03-29 16:14:08.427: D/dalvikvm(8950): No JNI_OnLoad found in /data/data/com.linekong.cjad.lk/files/libs/libvorbis.so 0x421565f0, skipping init 03-29 16:14:08.427: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libvorbisfile.so 0x421565f0 03-29 16:14:08.427: D/dalvikvm(8950): Added shared lib /data/data/com.linekong.cjad.lk/files/libs/libvorbisfile.so 0x421565f0 03-29 16:14:08.427: D/dalvikvm(8950): No JNI_OnLoad found in /data/data/com.linekong.cjad.lk/files/libs/libvorbisfile.so 0x421565f0, skipping init 03-29 16:14:08.427: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libcurl.so 0x421565f0 03-29 16:14:08.427: D/dalvikvm(8950): Shared lib '/data/data/com.linekong.cjad.lk/files/libs/libcurl.so' already loaded in same CL 0x421565f0 03-29 16:14:08.427: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libautoupdater.so 0x421565f0 03-29 16:14:08.427: D/dalvikvm(8950): Shared lib '/data/data/com.linekong.cjad.lk/files/libs/libautoupdater.so' already loaded in same CL 0x421565f0 03-29 16:14:08.427: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libspeex.so 0x421565f0 03-29 16:14:08.432: D/dalvikvm(8950): Added shared lib /data/data/com.linekong.cjad.lk/files/libs/libspeex.so 0x421565f0 03-29 16:14:08.432: D/dalvikvm(8950): No JNI_OnLoad found in /data/data/com.linekong.cjad.lk/files/libs/libspeex.so 0x421565f0, skipping init 03-29 16:14:08.432: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libmqcj.so 0x421565f0 03-29 16:14:08.502: D/dalvikvm(8950): Added shared lib /data/data/com.linekong.cjad.lk/files/libs/libmqcj.so 0x421565f0 03-29 16:14:08.502: W/Looper(8950): Looper already prepared for this thread with a different value for the ALOOPER_PREPARE_ALLOW_NON_CALLBACKS option. 03-29 16:14:08.507: V/VoiceManager(8950): VoiceManager Init Finished! 03-29 16:14:08.712: I/MemTotal: 1723840 kB MemFree: 357384 kB(8950) 03-29 16:14:08.712: I/MemTotal: 1723840 kB MemFree: 357384 kB(8950): MemTotal: 03-29 16:14:08.712: I/MemTotal: 1723840 kB MemFree: 357384 kB(8950): 1723840 03-29 16:14:08.712: I/MemTotal: 1723840 kB MemFree: 357384 kB(8950): kB 03-29 16:14:08.712: I/MemTotal: 1723840 kB MemFree: 357384 kB(8950): MemFree: 03-29 16:14:08.712: I/MemTotal: 1723840 kB MemFree: 357384 kB(8950): 357384 03-29 16:14:08.712: I/MemTotal: 1723840 kB MemFree: 357384 kB(8950): kB 文章出自
頓時一切都明了了。
游戲分別從以下兩個目錄載入了SO文件
1、工程中的Libs文件夾,就是 /data/app-lib/,使用system.loadLibrary()載入
2、默認應用文件夾 /data/data/com.linekong.cjad.lk/files 中的 libs/* ,使用system.load() 載入
文章出自
在Root過的手機上安裝ES文件管理器後,在/data/data/com.linekong.cjad.lk/files/libs中找到了游戲所使用的SO,
9. 英語Max Non Heap Memory怎麼翻譯
為什麼要學習JVM?
深入理解JVM可以幫助我們從平台角度提高解決問題的能力,例如,有效防止內存泄漏(Memory leak),優化線程鎖的使用 (Thread Lock),更加高效的進行垃圾回收 (Garbage collection),提高系統吞吐量 (throughput),降低延遲(Delay),提高其性能(performance)等。
你是如何理解JVM的?
JVM 是 Java Virtual Machine的縮寫,顧名思義,它是一個虛擬計算機,是硬體計算機的抽象(虛構)實現,是JAVA平台的一部分,如圖所示(見圖中的最底端):
JVM是 Java 程序能夠實現跨平台的基礎(Java的跨平台本質上是通過不同平台的JVM實現的),它的作用是載入 Java 程序,把位元組碼(bytecode)翻譯成機器碼再交由 CPU 執行。如圖所示:
程序在執行之前先要把 Java 代碼(.java)轉換成位元組碼(.class),JVM 通過類載入器(ClassLoader)把位元組碼載入到內存中,【關注尚矽谷,輕松學IT】但位元組碼文件是 JVM 的一套指令集規范,並不能直接交給底層操作系統去執行,因此需要特定的命令解析器執行引擎(Execution Engine) 將位元組碼翻譯成底層機器碼,再交由 CPU 去執行。
市場上有哪些主流的JVM呢?
JVM是一種規范,基於這種規范,不同公司做了具體實現,BEA公司研發JRockit VM,後在2008年由Oracle公司收購;IBM公司研發了J9 VM,只應用於IBM 內部。Sun公司研發了HotSpot VM,後在2010年由Oracle公司收購。目前是甲骨文公司最主流的一款JVM虛擬機,也是我們現在最常用的一種。
JVM的體系結構是怎樣的?
JVM 的體系結構,如圖所示:
類載入系統 (ClassLoader System)負責載入類到內存;運行時數據區 (Runtime Data Area)負責存儲對象數據信息;執行引擎(Execution Engine)負責調用對象執行業務;本地庫介面(Native Interface)負責融合不同的編程語言為 Java 所用。
JVM有哪些運行模式嗎?
JVM有兩種運行模式Server與Client。兩種模式的區別在於,Client模式啟動速度較快,Server模式啟動較慢;但是啟動進入穩定期之後Server模式的程序運行速度比Client要快很多。這是因為Server模式啟動的JVM採用的是重量級的虛擬機,對程序採用了更多的優化;而Client模式啟動的JVM採用的是輕量級的虛擬機。所以Server啟動慢,但穩定後速度比Client遠遠要快。
現在64位的jdk中默認都是server模式(可通過 java -version進行查看)。當虛擬機運行在-client模式的時候,使用的是一個代號為C1的輕量級編譯器, 而server模式啟動的虛擬機採用相對重量級,代號為C2的編譯器.c1、c2都是JIT編譯器, C2比C1編譯器編譯的相對徹底,服務起來之後,性能更高。
JVM 運行時內存結構是怎樣的?
不同虛擬機實現可能略微有所不同,但都會遵從 Java 虛擬機規范,Java 8 虛
擬機規范規定,Java 虛擬機所管理的內存將會包括以下幾個區域,如圖所示:
Java 堆(Heap)
Java堆(Java Heap)是 JVM 中內存最大的一塊,被所有線程共享的,在虛擬機啟動時創建,主要用於存放對象實例,大部分對象實例也都是在這里分配。隨著JIT編譯器的發展和逃逸分析技術的逐漸成熟,棧上分配、標量替換優化的技術將會導致一些微妙的變化,所有的對象都分配在堆上漸漸變得不那麼絕對了。小對象未逃逸還可以在直接在棧上分配。如果在堆中沒有內存完成實例分配,並且堆已不可以再進行擴展時,系統底層運行時將會拋出 OutOfMemoryError。Java 虛擬機規范規定,Java 堆可以處在物理上不連續的內存空間中,只要邏輯上連續即可,就像我們的磁碟空間一樣。在實現上也可以是固定大小的,也可以是可擴展的,不過當前主流的虛擬機都是可擴展的,通過 -Xmx 和 -Xms 參數定義堆內存大小。
方法區(Method Area)
方法區(Methed Area)是一種規范,用於存儲已被虛擬機載入的類信息、常量、靜態變數、即時編譯後的代碼等數據。不同jdk,方法區的實現不同,HotSpot 虛擬機在 JDK 8 中使用 Native Memory 來實現方法區。當方法無法滿足內存分配需求時會拋出 OutOfMemoryError 異常。
Java 虛擬機棧(VM Stack)
Java 虛擬機棧(Java Virtual Machine Stacks)描述的是 Java 方法執行時的內存模型,每個方法在被線程調用時都會創建一個棧幀(Stack Frame)用於存儲局部變數表、操作數棧、動態鏈接、方法出口等信息,每個方法從調用直至執行完成的過程,【關注尚矽谷,輕松學IT】都對應著一個棧幀在虛擬機棧中入棧到出棧的過程。如果線程請求的棧深度大於虛擬機所允許的棧深度就會拋出 StackOverflowError 異常。如果虛擬機是可以動態擴展的,如果擴展時無法申請到足夠的內存就會拋出 OutOfMemoryError 異常。
JVM本地方法棧 (Native Method Stack)
本地方法棧(Native Method Stack)與虛擬機棧的作用類似,只不過虛擬機棧是服務 Java 方法的,而本地方法棧是為虛擬機調用 Native 方法服務的。在 Java 虛擬機規范中對於本地方法棧沒有特殊的要求,虛擬機可以自由的實現它,因此在 Sun HotSpot 虛擬機直接把本地方法棧和虛擬機棧合二為一了。
JVM程序計數器(Program Counter Register)
程序計數器(Program Counter Register)是一塊較小的內存空間,它可以看作是當前線程執行的位元組碼的行號指示器。在虛擬機的概念模型里,位元組碼解析器的工作是通過改變這個計數器的值來選取下一條需要執行的位元組碼指令,分支、循環、跳轉、異常處理、線程恢復等基礎功能都需要依賴這個計數器來完成。
由於 JVM 的多線程是通過線程輪流切換並分配處理器執行時間的方式來實現的,也就是任何時刻,一個處理器(或者說一個內核)都只會執行一條線程中的指令。因此為了線程切換後能恢復到正確的執行位置,每個線程都有獨立的程序計數器。
如果線程正在執行 Java 中的方法,程序計數器記錄的就是正在執行虛擬機位元組碼指令的地址,如果是 Native 方法,這個計數器就為空(undefined),因此該內存區域是唯一一個在 Java 虛擬機規范中沒有規定 OutOfMemoryError 的區域。
如何理解JVM中的GC系統?
追蹤仍然使用的所有對象,並將其餘對象標記為垃圾,然後進行回收,這個過程稱之為GC(垃圾回收).所有的GC系統可從GC判斷策略(例如引用計數,對象可達性分析),GC收集演算法(標記-清除,標記-清除-整理,標記-復制-清除,分代),GC收集器(例如Serial,Parallel,CMS,G1)等方面進行學習
JVM引用鏈中可以作為 Root 的對象?
Java 虛擬機棧中的引用對象;
本地方法棧中 JNI(既一般說的 Native 方法)引用的對象;
方法區中類靜態常量的引用對象;
方法區中常量的引用對象。
JVM中常見垃圾回收演算法有哪些?
引用計數器演算法
這個演算法是給每一個對象設置一個引用計數器,每當有一個地方引用這個對象的時候,計數器就加 1,與之相反,每當引用失效的時候就減 1。也就是以計數來判斷對象是否為垃圾。例如:
引用計數法,有一個很大的缺陷就是循環引用,例如:
可達性分析演算法
這個演算法的核心思路就是通過一系列的「GC Roots」對象作為起始點,從這些對象開始往下搜索,搜索所經過的路徑稱之為「引用鏈」。當一個對象到 GC Roots 沒有任何引用鏈相連的時候,證明此對象是可以被回收的。例如:
復制演算法
這個演算法是將內存分為大小相同的兩塊,當這一塊使用完了,就把當前存活的對象復制到另一塊,然後一次性清空當前區塊。此演算法的缺點是只能利用一半的內存空間。例如:
標記-清除演算法
這個演算法執行分兩階段,第一階段從引用根節點開始標記所有被引用的對象,第二階段遍歷整個堆,把未標記的對象清除。此演算法需要暫停整個應用,同時,會產生內存碎片。例如:
標記-整理演算法
這個演算法結合了「標記-清除」和「復制」兩個演算法的優點。第一階段從根節點開始標記所有被引用對象,第二階段遍歷整個堆,把存活對象「壓縮」復制到堆的其中一塊空間中,按順序排放。此演算法避免了「標記-清除」的碎片問題,同時也避免了「復制」演算法的空間問題,例如:
JVM對象引用都有哪些類型?
不管是引用計數法還是可達性分析演算法都與對象的「引用」有關[說說Java中的四大引用類型。],這說明對象的引用決定了對象的生死,對象的引用關系如下。
強引用
在代碼中普遍存在的,類似 Object obj = new Object() 這類引用,只要強引用還在,垃圾收集器永遠不會回收掉被引用的對象。
軟引用
是一種相對強引用弱化一些的引用,可以讓對象豁免一些垃圾收集,只有當JVM 認為內存不足時,才會去試圖回收軟引用指向的對象,JVM 會確保在拋出 OutOfMemoryError 之前,清理軟引用指向的對象。
弱引用
非必需對象,但它的強度比軟引用更弱,被弱引用關聯的對象只能生存到下一次垃圾收集發生之前。
虛引用
也稱為幽靈引用或幻影引用,是最弱的一種引用關系,無法通過虛引用來獲取一個對象實例,為對象設置虛引用的目的只有一個,就是當這個對象被收集器回收時收到一條系統通知。
JVM垃圾回收器的分類都有哪些?
新生代回收器
Serial、ParNew、Parallel Scavenge
老年代回收器
Serial Old、Parallel Old、CMS
整堆回收器
G1垃圾回收器
分代垃圾回收器的組成部分有哪些?
分代垃圾回收器是由新生代(Young Generation)和老生代(Tenured Generation)組成的,默認情況下新生代和老生代的內存比例是 1:2。
新生代的組成部分有哪些?:
新生代是由:Eden、Form Survivor、To Survivor 三個區域組成的,它們內存默認佔比是 8:1:1,如圖所示:
新生代垃圾回收是怎麼執行的?
第一步將Eden和From Survivor 活著的對象復制到 To Survivor 區;第二步將清空 Eden 和 From Survivor 分區;第三步將From Survivor 和 To Survivor 分區交換(From 變 To,To 變 From)。當新生代的 Survivor 分區為 2 個的時候,不論是空間利用率還是程序運行的效率都是最優的。
談談JVM中的CMS 垃圾回收器?
CMS(Concurrent Mark and Sweep)是並發標記和清除垃圾收集器。它會使用空閑列表(free-lists)管理內存空間的回收,不對老年代進行整理。其優點是在標記、清除階段的大部分工作和應用線程一起並發執行。可以降低延遲,縮短停頓時間,www.atguigu.com提高服務的響應時間。當然也有缺陷,主要表現在,對 CPU 資源要求敏感,無法清除浮動垃圾(浮動垃圾指的是 CMS 清除垃圾的時候,還有用戶線程產生新的垃圾,這部分未被標記的垃圾叫做「浮動垃圾」,只能在下次 GC 的時候進行清除),還會產生大量空間碎片。
談談JVM中的是 G1 垃圾回收器?
G1(Garbage-First GC)是一款實時收集器,其設計目標是將STW停頓時間和分布變成可預期以及可配置的。可以說是一種兼顧吞吐量和停頓時間的 GC 實現。G1 可以直觀的設定停頓時間的目標,相比於 CMS ,G1 未必能做到 CMS 在最好情況下的延時停頓,但是最差情況要好很多。
使用G1收集器時,Java堆的內存布局與其他收集器有很大差別,它將整個Java堆劃分為多個大小相等的獨立區域(Region),雖然還保留有新生代和老年代的概念,但新生代和老年代不再是物理隔閡了,它們都是一部分(可以不連續)Region的集合,例如:
這樣的劃分使得 GC不必每次都去收集整個堆空間, 而是以增量的方式來處理,每次只處理一部分小堆區,稱為此次的回收集(collection set). 每次暫停都會收集所有年輕代的小堆區, 同時也可能只包含一部分老年代小堆區。
G1的另一項創新, 是在並發階段估算每個小堆區存活對象的總數。用來構建回收集(collection set)的原則是: 垃圾最多的小堆區會被優先收集。這也是G1名稱的由來:garbage-first。
G1 解決了 CMS 中的各種疑難問題, 包括暫停時間的可預測性, 並終結了堆內存的碎片化。對單業務延遲非常敏感的系統來說, 如果CPU資源不受限制,那麼G1可以說是 HotSpot 中最好的選擇, 特別是在最新版本的Java虛擬機中。當然,這種降低延遲的優化也不是沒有代價的: 由於額外的寫屏障(write barriers)和更積極的守護線程, G1的開銷會更大。所以, 如果系統屬於吞吐量優先型的,又或者CPU持續佔用100%, 而又不在乎單次GC的暫停時間, 那麼CMS是更好的選擇。
JVM垃圾回收的調優參數有哪些?
-Xmx:512 設置最大堆內存為 512 M;
-Xms:256 初始堆內存(最小堆)為 256 M;
-XX:MaxNewSize 設置最大年輕代內存;
-XX:MaxTenuringThreshold=6 設置新生代對象經過6次GC晉升到老年代;
-XX:PretrnureSizeThreshold 設置大對象的值,超過這個值的大對象直接進入老生代;
-XX:NewRatio 設置分代垃圾回收器新生代和老生代內存佔比;
-XX:SurvivorRatio 設置新生代 Eden、Form Survivor、To Survivor 佔比。
JVM現代並發GC有什麼調優原則
第一要空間換時間與效率,針對G1 & ZGC 加大堆內存(更多的空餘空間)的配置往往更有利 於GC達到目標暫停時間。第二要知道低暫停不代表高吞吐量,並發GC是保證並發階段GC的同時業務線程依然有幾率獲得CPU時間片,但同時也意味著GC會與業務線程搶占計算資源,且往往更多的並發階段為了處理更多的同步問題,也會佔用更多的計算資源。第三是GC調優永遠要考慮機器資源,對應系統應用場景等等,至少目前沒有銀彈。
文章來源於jason
10. linux怎麼安裝軟體
1、打開系統,可以看到桌面,找到軟體中心,打開軟體中心