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、打开系统,可以看到桌面,找到软件中心,打开软件中心