日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android项目打包开启proguard的混淆优化带来的问题

發(fā)布時間:2025/3/15 Android 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android项目打包开启proguard的混淆优化带来的问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.引入一個sdk以后。打包報錯:
[INFO] Unexpected error while evaluating instruction:
[INFO] ? Class ? ? ? = [com/alibaba/mobileim/channel/service/SOManager]
[INFO] ? Method ? ? ?= [_loadFile()Z]
[INFO] ? Instruction = [536] aload v6
[INFO] ? Exception ? = [java.lang.NullPointerException] (null)
[INFO] Unexpected error while performing partial evaluation:
[INFO] ? Class ? ? ? = [com/alibaba/mobileim/channel/service/SOManager]
[INFO] ? Method ? ? ?= [_loadFile()Z]
[INFO] ? Exception ? = [java.lang.NullPointerException] (null)
[INFO] java.lang.NullPointerException)

我們知道ProGuard執(zhí)行結(jié)束后,會輸出下面文件:
dump.txt 描寫敘述.apk文件里全部類文件間的內(nèi)部結(jié)構(gòu)
mapping.txt 列出了原始的類,方法和字段名與混淆后代碼間的映射。這個文件非常重要。當(dāng)你從release版本號中收到一個bug報告時。能夠用它來翻譯被混淆的代碼。
seeds.txt 列出了未被混淆的類和成員
usage.txt 列出了從.apk中刪除的代碼

查看我們的seeds.txt:
com.alibaba.mobileim.channel.service.SOManager: boolean _loadFile()
說明,SOManager類的_loadFile()方法是沒有被混淆掉的。

2.看上去是處理SOManager類的_loadFile()方法的第536條指令的時候出的問題。反編譯SOManager.class:
? ?507:invokevirtual#112; //Method java/io/IOException.getMessage:()Ljava/lang/String;
? ?510:invokevirtual#15; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
? ?513:ldc#110; //String ?
? ?515:invokevirtual#15; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
? ?518:getstatic#41; //Field logInfo:Ljava/lang/StringBuffer;
? ?521:invokevirtual#100; //Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
? ?524:invokevirtual#19; //Method java/lang/StringBuilder.toString:()Ljava/lang/String;
? ?527:invokespecial#55; //Method java/lang/UnsatisfiedLinkError."<init>":(Ljava/lang/String;)V
? ?530:athrow
? ?531:astore6
? ?533:jsr539
? ?536:aload6
? ?538:athrow
? ?539:astore7
? ?541:aload4
? ?543:ifnull574
能夠看到,536行的字節(jié)碼是:
? ?536:aload6
就是處理這條指令的時候拋出的空指針。至此,基本能夠斷定問題出在字節(jié)碼上!

3.那可能是什么原因?qū)е碌哪?#xff1f;
(1)是不是sdk使用的javac的版本號不正確,導(dǎo)致proguard無法處理里面的字節(jié)碼。可是maven庫里面的jar包不是開發(fā)人員手動上傳的,因此排除。
(2)是不是proguard的版本號太低?從官網(wǎng)的1.0一直試到了最新的4.11,還是不行。

沒辦法繼續(xù)看官網(wǎng)山的文檔。在http://proguard.sourceforge.net/#manual/usage.html頁面,看到Optimization Options這一章節(jié)的前三個選項:

-dontoptimize
Specifies not to optimize the input class files. By default, optimization is enabled; all methods are optimized at a bytecode level.
不優(yōu)化輸入的class文件。

默認情況下是啟用優(yōu)化的。對全部的方法都會在字節(jié)碼級別進行優(yōu)化!

-optimizations optimization_filter
Specifies the optimizations to be enabled and disabled, at a more fine-grained level. Only applicable when optimizing. This is an expert option.
在細粒度級別設(shè)置啟用和禁用的優(yōu)化選項。僅僅有當(dāng)啟用優(yōu)化的時候才可用。這是一個專家級選項!

-optimizationpasses n
Specifies the number of optimization passes to be performed. By default, a single pass is performed. Multiple passes may result in further improvements.?
If no improvements are found after an optimization pass, the optimization is ended. Only applicable when optimizing.
這個看源代碼貌似是依據(jù)optimizationpasses做了一個循環(huán),進行多次優(yōu)化:
proguard.ant.ProGuardTask.java:

if (configuration.optimize){ for (int optimizationPass = 0;optimizationPass < configuration.optimizationPasses;optimizationPass++){ if (!optimize()){// Stop optimizing if the code doesn't improve any further.break; } // Shrink again, if we may. if (configuration.shrink){// Don't print any usage this time around.configuration.printUsage = null;configuration.whyAreYouKeeping = null;shrink(); } } }也就是說Optimization Options會對字節(jié)碼做改動,我們的proguard.cfg的一開頭就是:
#---------------
# 混淆優(yōu)化
#---------------
-optimizationpasses 7

也就是說我們是開啟了混淆優(yōu)化的,這就說會對字節(jié)碼做改動。極有可能是這個原因!換用-dontoptimize試一下,果然能夠了!

4.詳細proguard對字節(jié)碼會做那些優(yōu)化呢?
看這個文檔http://proguard.sourceforge.net/#FAQ.html:

What kind of optimizations does ProGuard support?
Apart from removing unused classes, fields, and methods in the shrinking step, ProGuard can also perform optimizations at the bytecode level, inside methods. Thanks to techniques like control flow analysis, data flow analysis, partial evaluation, and liveness analysis, ProGuard can:
Evaluate constant expressions.
Remove unnecessary field accesses and method calls.
Remove unnecessary branches.
Remove unnecessary comparisons and instanceof tests.
Remove unused code blocks.
Merge identical code blocks.
Reduce variable allocation.
Remove write-only fields and unused method parameters.
Inline constant fields, method parameters, and return values.
Inline methods that are short or only called once.
Make methods private, static, and final when possible.
Make classes static and final when possible.
Replace interfaces that have single implementations.
Perform over 200 peephole optimizations, like replacing ...*2 by ...<<1.
Optionally remove logging code.
The positive effects of these optimizations will depend on your code and on the virtual machine on which the code is executed. Simple virtual machines may benefit more than advanced virtual machines with sophisticated JIT compilers. At the very least, your bytecode may become a bit smaller.
Some notable optimizations that aren't supported yet:
Moving constant expressions out of loops.
Optimizations that require escape analysis.

真是不看不知道,一看嚇一跳!居然會做這么多種優(yōu)化!

然后看到這個頁面:http://proguard.sourceforge.net/#manual/limitations.html

When using ProGuard, you should be aware of a few technical issues, all of which are easily avoided or resolved:
For best results, ProGuard's optimization algorithms assume that the processed code never intentionally throws NullPointerExceptions or?
ArrayIndexOutOfBoundsExceptions, or even OutOfMemoryErrors or StackOverflowErrors, in order to achieve something useful.?
For instance, it may remove a method call myObject.myMethod() if that call wouldn't have any effect.?
It ignores the possibility that myObject might be null, causing a NullPointerException.?
In some way this is a good thing: optimized code may throw fewer exceptions. Should this entire assumption be false,?
you'll have to switch off optimization using the -dontoptimize option.

ProGuard's optimization algorithms currently also assume that the processed code never creates busy-waiting loops without at least testing on a volatile field. Again, it may remove such loops. Should this assumption be false, you'll have to switch off optimization using the -dontoptimize option.
If an input jar and a library jar contain classes in the same package, the obfuscated output jar may contain class names that overlap with class names in the library jar. This is most likely if the library jar has been obfuscated before, as it will then probably contain classes named 'a', 'b', etc. Packages should therefore never be split across input jars and library jars.
When obfuscating, ProGuard writes out class files named "a.class", "b.class", etc. If a package contains a large number of classes, ProGuard may also write out "aux.class". Inconveniently, Windows refuses to create files with this reserved name (among a few other names). It's generally better to write the output to a jar, in order to avoid such problems.

大概意思是說,有的優(yōu)化可能會導(dǎo)致空指針。就像我們的樣例中,就是拋出了空指針!



然后在http://proguard.sourceforge.net/index.html#manual/examples.html這個頁面,看到一行:

-optimizations !code/simplification/arithmetic

The -optimizations option disables some arithmetic simplifications that Dalvik 1.0 and 1.5 can't handle.?
Note that the Dalvik VM also can't handle aggressive overloading (of static fields).

也就是說有的優(yōu)化Dalvik是不支持的。所以要排除掉!

所以,非常可能是有些優(yōu)化我們沒有排除掉!

看一下我們的配置文件中面設(shè)置的優(yōu)化選項:

# ----優(yōu)化選項----
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

這幾個選項詳細是干嘛的?

參考:https://groups.google.com/forum/#!topic/android-developers/v_o0AQ7o8gI

#1: !code/simplification/arithmetic: This removes things like turning?
"3 + 3" into "6". ?A shame, but understandable, because there are much?
more complicated optimizations to the byte code that Dalvik doesn't?
handle well. ?This one is completely understood.?

#2: !field/*: This refers to the following:?
field/removal/writeonly - Removes write-only fields.?
field/marking/private - Marks fields as private, whenever possible.?
field/propagation/value - Propagates the values of fields across?
methods.?

#3: !class/merging/*: This disables merging two or more classes?
horizontally or vertically (in the same class hierarchy).?

那么。詳細有多少種能夠使用的優(yōu)化選項呢?看這里:http://stuff.mit.edu/afs/sipb/project/android/sdk/android-sdk-linux/tools/proguard/docs/index.html#manual/optimizations.html

http://proguard.sourceforge.net->manual-> ref card->-optimizations optimization_filter

Optimizations
The optimization step of ProGuard can be switched off with the -dontoptimize option. For more fine-grained control over individual optimizations, experts can use the -optimizations option, with a filter based on the optimization names listed below. The filter works like any filter in ProGuard.
The following wildcards are supported:
? matches any single character in an optimization name.
* matches any part of an optimization name.
An optimization that is preceded by an exclamation mark '!' is excluded from further attempts to match with subsequent optimization names in the filter. Make sure to specify filters correctly, since they are not checked for potential typos.
For example, "code/simplification/variable,code/simplification/arithmetic" only performs the two specified peephole optimizations.
For example, "!method/propagation/*" performs all optimizations, except the ones that propagate values between methods.
For example, "!code/simplification/advanced,code/simplification/*" only performs all peephole optimizations.
Some optimizations necessarily imply other optimizations. These are then indicated. Note that the list is likely to change over time, as optimizations are added and reorganized.
class/marking/final
Marks classes as final, whenever possible.
class/unboxing/enum
Simplifies enum types to integer constants, whenever possible.
class/merging/vertical
Merges classes vertically in the class hierarchy, whenever possible.
class/merging/horizontal
Merges classes horizontally in the class hierarchy, whenever possible. (? code/removal/advanced)
field/removal/writeonly
Removes write-only fields.
field/marking/private
Marks fields as private, whenever possible.(? code/simplification/advanced)
field/propagation/value
Propagates the values of fields across methods.
method/marking/private
Marks methods as private, whenever possible (devirtualization).(? code/removal/advanced)
method/marking/static
Marks methods as static, whenever possible (devirtualization).
method/marking/final
Marks methods as final, whenever possible.(? code/removal/advanced)
method/removal/parameter
Removes unused method parameters.(? code/simplification/advanced)
method/propagation/parameter
Propagates the values of method parameters from method invocations to the invoked methods.(? code/simplification/advanced)
method/propagation/returnvalue
Propagates the values of method return values from methods to their invocations.
method/inlining/short
Inlines short methods.
method/inlining/unique
Inlines methods that are only called once.
method/inlining/tailrecursion
Simplifies tail recursion calls, whenever possible.
code/merging
Merges identical blocks of code by modifying branch targets.
code/simplification/variable
Performs peephole optimizations for variable loading and storing.
code/simplification/arithmetic
Performs peephole optimizations for arithmetic instructions.
code/simplification/cast
Performs peephole optimizations for casting operations.
code/simplification/field
Performs peephole optimizations for field loading and storing.(? code/removal/simple)
code/simplification/branch
Performs peephole optimizations for branch instructions.
code/simplification/string
Performs peephole optimizations for constant strings.(best used with code/removal/advanced)
code/simplification/advanced
Simplifies code based on control flow analysis and data flow analysis.(? code/removal/exception)
code/removal/advanced
Removes dead code based on control flow analysis and data flow analysis.(? code/removal/exception)
code/removal/simple
Removes dead code based on a simple control flow analysis.
code/removal/variable
Removes unused variables from the local variable frame.
code/removal/exception
Removes exceptions with empty try blocks.
code/allocation/variable
Optimizes variable allocation on the local variable frame.

相應(yīng)的源代碼proguard.optimize.Optimizer.java:

private static final String CLASS_MARKING_FINAL = "class/marking/final";private static final String CLASS_UNBOXING_ENUM = "class/unboxing/enum";private static final String CLASS_MERGING_VERTICAL = "class/merging/vertical";private static final String CLASS_MERGING_HORIZONTAL = "class/merging/horizontal";private static final String FIELD_REMOVAL_WRITEONLY = "field/removal/writeonly";private static final String FIELD_MARKING_PRIVATE = "field/marking/private";private static final String FIELD_PROPAGATION_VALUE = "field/propagation/value";private static final String METHOD_MARKING_PRIVATE = "method/marking/private";private static final String METHOD_MARKING_STATIC = "method/marking/static";private static final String METHOD_MARKING_FINAL = "method/marking/final";private static final String METHOD_REMOVAL_PARAMETER = "method/removal/parameter";private static final String METHOD_PROPAGATION_PARAMETER = "method/propagation/parameter";private static final String METHOD_PROPAGATION_RETURNVALUE = "method/propagation/returnvalue";private static final String METHOD_INLINING_SHORT = "method/inlining/short";private static final String METHOD_INLINING_UNIQUE = "method/inlining/unique";private static final String METHOD_INLINING_TAILRECURSION = "method/inlining/tailrecursion";private static final String CODE_MERGING = "code/merging";private static final String CODE_SIMPLIFICATION_VARIABLE = "code/simplification/variable";private static final String CODE_SIMPLIFICATION_ARITHMETIC = "code/simplification/arithmetic";private static final String CODE_SIMPLIFICATION_CAST = "code/simplification/cast";private static final String CODE_SIMPLIFICATION_FIELD = "code/simplification/field";private static final String CODE_SIMPLIFICATION_BRANCH = "code/simplification/branch";private static final String CODE_SIMPLIFICATION_STRING = "code/simplification/string";private static final String CODE_SIMPLIFICATION_ADVANCED = "code/simplification/advanced";private static final String CODE_REMOVAL_ADVANCED = "code/removal/advanced";private static final String CODE_REMOVAL_SIMPLE = "code/removal/simple";private static final String CODE_REMOVAL_VARIABLE = "code/removal/variable";private static final String CODE_REMOVAL_EXCEPTION = "code/removal/exception";private static final String CODE_ALLOCATION_VARIABLE = "code/allocation/variable";那肯定是這里面的有些優(yōu)化選項導(dǎo)致了無法打包這個問題!

非常不幸的是,我把所有的優(yōu)化選項所有排除掉以后,還是無法打包!

所以,僅僅能懷疑我們項目的proguard的版本號和上面列出的優(yōu)化選項不匹配!更換最新的proguard4.11的jar包,然后挨個選項的試,終于試出來了:

-optimizations !code/simplification/*,!field/*,!class/merging/*,!method/removal/parameter,!method/propagation/*,!method/marking/static,!class/unboxing/enum,!code/removal/advanced,!code/allocation/variable

總結(jié)一下:
(1)ProGuard不光能做混淆,還能做代碼優(yōu)化。
(2)ProGuard不是專門為android的Dalvik使用的。
(3)就算是Sun的Hotspot JVM也會有不支持的優(yōu)化選項。


(4)不知道未來哪個優(yōu)化選項會導(dǎo)致打包通只是,而我們主要是使用ProGuard的混淆功能。干脆-dontoptimize,一勞永逸!

轉(zhuǎn)載于:https://www.cnblogs.com/zfyouxi/p/5224719.html

總結(jié)

以上是生活随笔為你收集整理的Android项目打包开启proguard的混淆优化带来的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

国产你懂的在线 | 亚洲精品美女在线观看 | 中文字幕亚洲精品日韩 | 日本免费久久高清视频 | 亚洲精品中文在线观看 | 日日夜夜狠狠干 | 久久这里有精品 | 亚洲视频免费视频 | 字幕网在线观看 | 国产啊v在线 | 在线成人免费电影 | 午夜国产成人 | 白丝av免费观看 | 亚洲精品视频免费 | 成人av电影在线 | 国产视频在线免费 | 色五月成人| 天天操月月操 | 国内外成人在线 | 一区二区三区在线免费 | 成年人免费av | 国产九九热视频 | 国产精品一区在线观看 | 人人看人人做人人澡 | 91福利视频免费观看 | 91激情在线视频 | 97在线播放| 国产专区免费 | 国产亚洲成人网 | 欧美 日韩 国产 成人 在线 | 日韩精品久久久久久久电影竹菊 | 久久精品免视看 | 99视频精品视频高清免费 | 色婷婷av在线| 亚洲精品视频免费在线观看 | 91久久精| 在线一级片 | 欧美高清视频不卡网 | 亚洲精品久久久久久中文传媒 | 91久久精品一区二区三区 | 欧美一级片在线观看视频 | 色噜噜在线观看视频 | 免费av片在线 | 99r精品视频在线观看 | 四虎永久视频 | www狠狠操| www.国产在线观看 | 国产成人综 | 亚洲成a人片在线观看网站口工 | 人人澡人人草 | 久久福利在线 | 91av免费在线观看 | 国产看片 色 | 国产精品毛片久久久久久久 | 1区2区视频| 在线探花| av免费看网站 | 国产成人黄色av | 欧美性视频网站 | 在线观看黄色av | 国产成人一区二区三区免费看 | 男女视频久久久 | 国产精品欧美久久 | 国产二区视频在线 | 久久伊人国产精品 | 久久99久国产精品黄毛片入口 | 精品国产欧美一区二区三区不卡 | 热久久99这里有精品 | 成人免费观看在线视频 | 91免费版在线 | 日日干精品 | 香蕉视频在线视频 | 玖玖视频国产 | 久久男女视频 | 日韩毛片一区 | 久久精品日本啪啪涩涩 | av色一区 | 91九色蝌蚪在线 | 天天干天天玩天天操 | 免费视频一二三 | 97看片吧 | 国产精品久久综合 | 狠狠操狠狠插 | 亚洲撸撸| 亚洲综合国产精品 | 免费精品视频在线观看 | 91成熟丰满女人少妇 | 欧美性久久久久久 | 日韩爱爱网站 | 成年人免费av | 久99久在线视频 | 九九久久久久99精品 | 久久任你操| 五月婷婷影院 | 精品亚洲网 | 99日精品 | 在线 国产 亚洲 欧美 | 在线观看中文字幕2021 | 91在线视频导航 | 国产伦精品一区二区三区免费 | 亚洲综合在线播放 | 五月综合激情婷婷 | 日韩a级黄色片 | 亚洲欧美日韩精品一区二区 | 日本高清xxxx | 国产精品毛片久久蜜 | 国产精品久久久久999 | 精品久久福利 | 麻豆国产电影 | 视频在线观看入口黄最新永久免费国产 | 久久免费黄色网址 | 香蕉视频在线免费看 | 91在线精品秘密一区二区 | av.com在线 | 中文字幕精 | 亚洲国产一区在线观看 | 国产视频69 | 久久久精品视频网站 | 中文字幕在线观看不卡 | 国产91精品在线播放 | 免费三级黄色 | 超碰人人舔 | 人人草在线视频 | 国产在线观看,日本 | 久久精品久久99精品久久 | 在线观看免费av网 | 国产精品久久久久久a | 三级在线视频播放 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 少妇bbw搡bbbb搡bbb | 91精品一区二区在线观看 | 麻豆观看 | 精品免费久久久久久 | 国产原创在线视频 | 久久免费一级片 | 久久国产精品久久精品国产演员表 | 福利一区在线 | 欧美日韩一区三区 | 国产精品综合av一区二区国产馆 | 成人影视片 | 国产精品一区二区三区99 | 中文字幕av最新更新 | 偷拍区另类综合在线 | 福利精品在线 | 99久久日韩精品免费热麻豆美女 | 西西4444www大胆视频 | 国产精品99蜜臀久久不卡二区 | 91在线看视频 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产精品二区三区 | 国产一级免费在线观看 | 免费看的黄色小视频 | av 一区二区三区 | 久久久久女人精品毛片九一 | 久草在线视频免赞 | 在线观看免费av网 | www日| 国产高清一 | 亚洲欧美国产日韩在线观看 | 黄色精品在线看 | 亚洲最大激情中文字幕 | 99爱精品视频 | 国产精品成人一区二区三区吃奶 | 亚洲乱码中文字幕综合 | 亚洲人成在线观看 | 中文字幕在线视频免费播放 | 中文字幕在线免费观看视频 | 激情网五月天 | 97精品国产一二三产区 | 在线亚洲高清视频 | 欧美色综合天天久久综合精品 | 五月在线 | 日韩视频免费看 | 国产精品99久久久久久人免费 | 欧美日韩亚洲在线观看 | 91九色免费视频 | 一级免费黄色 | 久久精品视频在线播放 | 丁香花在线视频观看免费 | 日韩欧美有码在线 | 91大神在线看 | 在线观看免费国产小视频 | 国产一区精品在线观看 | 久久tv| 亚洲一级在线观看 | 天天爽夜夜爽精品视频婷婷 | 中文字幕在线专区 | 曰韩精品 | 丁香高清视频在线看看 | 日韩欧美在线高清 | 伊人伊成久久人综合网小说 | 在线播放av网址 | 国产乱码精品一区二区蜜臀 | 久久精品中文字幕少妇 | www.亚洲视频.com | 麻豆 91 在线 | 色视频在线观看免费 | 欧美精品国产综合久久 | 视频二区在线 | 国产午夜麻豆影院在线观看 | 成人午夜网 | 欧美激情精品久久久久久免费 | 中文字幕中文中文字幕 | 一区二区三区在线视频观看58 | 婷婷色视频 | 狠狠色噜噜狠狠狠狠2022 | 国产99久久久精品 | 波多野结衣在线视频一区 | 久久国产精品视频 | 国产一区高清在线观看 | 欧美日韩亚洲在线观看 | 99色国产| 成人av影视在线 | 婷婷日日 | 亚洲成人黄色在线观看 | 91在线精品视频 | 欧美日韩国产一区二区三区在线观看 | 2023天天干 | 国产精品欧美一区二区三区不卡 | 91在线看片 | 色综合久久久久久久久五月 | 日韩精品一区二区不卡 | 欧美色图另类 | 99久久99久久综合 | 久久精品黄 | 日韩一二区在线观看 | 精品国产乱码久久久久久天美 | 亚洲欧美日韩精品久久奇米一区 | 怡春院av| 国产一区二区三区四区大秀 | 黄色a大片| 日韩精品一区二区三区在线播放 | 亚洲精品天天 | 中文字幕在线一区二区三区 | 999久久国产 | 亚洲欧美在线观看视频 | 婷婷电影在线观看 | 精品久久久精品 | 久久综合狠狠综合久久狠狠色综合 | 欧美在线视频日韩 | 深爱激情五月综合 | 能在线观看的日韩av | 中文字幕国产 | 国产精品18久久久久久vr | 国产不卡在线视频 | 国产精品免费一区二区三区 | 免费黄色a网站 | 奇米先锋 | 在线观看中文字幕2021 | 国产一级二级av | 国产精品99久久久久久有的能看 | 国产精品久久久久久久久免费 | 免费亚洲黄色 | www.色五月 | 日韩在线观看你懂的 | 一级α片免费看 | 亚洲国产黄色片 | 亚洲伊人天堂 | 国产成人333kkk | 日韩综合在线观看 | 亚洲一区二区天堂 | 午夜精品久久久久久 | 国产精品一区二区果冻传媒 | 亚洲三级av | 久久久亚洲精品 | 亚洲精品视频在线观看免费视频 | 激情五月婷婷综合网 | 欧美日韩高清在线一区 | 国产精品成人一区二区三区吃奶 | 精品国产成人av | 亚洲国产中文字幕在线观看 | 国内小视频 | 丰满少妇久久久 | 999热视频| 久久综合久久久 | www久久国产 | 四虎永久免费网站 | 999视频网站 | 国产精品一区二区三区视频免费 | 涩av在线 | av中文电影| 久久九九久久九九 | 天天综合天天做 | 又黄又爽的免费高潮视频 | 五月天久久| 免费欧美高清视频 | 亚洲激情五月 | 国产黄网在线 | 91色一区二区三区 | 日日夜夜噜| 日本不卡123区 | 操久在线| 日日爱夜夜爱 | 午夜精品av | 欧美一级免费片 | 午夜色性片 | www.久久久.cum | 在线播放亚洲 | 一区二区三区在线看 | 欧美日韩视频免费 | av高清一区二区三区 | 中文字幕婷婷 | 激情伊人| 国产美女精品久久久 | 黄色三级视频片 | 91看片在线 | 玖草在线观看 | 91亚洲精品国偷拍 | 国产精品原创视频 | 亚州人成在线播放 | 日本精品视频免费观看 | 三级av在线播放 | 久精品视频在线 | 色99之美女主播在线视频 | 色综合久久久久综合 | 国产午夜激情视频 | 伊人色综合网 | 免费国产亚洲视频 | 一二三久久久 | 免费看黄色毛片 | 美女福利视频网 | 4hu视频| 超碰在线97免费 | 一区 二区 精品 | 久久精品一二三 | 国产精品午夜免费福利视频 | 久久综合欧美精品亚洲一区 | 成人va视频| 国产日韩视频在线 | 免费的黄色的网站 | 极品中文字幕 | 欧美一级艳片视频免费观看 | 日本巨乳在线 | 日韩三级在线观看 | 久草色在线观看 | 久久不卡视频 | 天干啦夜天干天干在线线 | 超碰人人91 | 免费亚洲成人 | 99亚洲天堂 | 狠狠色狠狠色综合日日小说 | 久久精品人人做人人综合老师 | 黄色片亚洲 | 日本精品一区二区在线观看 | 国产99久久久国产 | 在线观看中文字幕一区二区 | 中文字幕色婷婷在线视频 | 91麻豆精品国产91久久久使用方法 | aa级黄色大片 | 国产精品一区免费看8c0m | 叶爱av在线 | 一区二区三区精品久久久 | 狠狠色狠狠色综合系列 | 国产高清久久 | 美女视频黄免费网站 | 亚洲免费av一区二区 | 欧美一级电影 | 特级毛片网 | 一区二区三区四区五区六区 | 国产在线一区二区三区播放 | 久久久午夜精品福利内容 | 国产视频在线一区二区 | 日韩精品极品视频 | 国产一区视频在线 | av中文字幕免费在线观看 | 日本aaa在线观看 | 欧美精品乱码久久久久久 | 免费日韩电影 | 久久久久久久久久久久久影院 | 久久免费a | 国产不卡视频 | 国产成人精品免高潮在线观看 | 岛国av在线免费 | www五月 | 波多野结衣在线视频一区 | 亚洲视屏| a爱爱视频 | 欧美在线视频一区二区三区 | 超碰在线观看av.com | 又黄又刺激视频 | 深夜免费网站 | 久久视频精品在线观看 | 成人黄色国产 | 免费av视屏| 亚洲 欧美 91| www色片 | 91丨九色丨91啦蝌蚪老版 | 精品一区中文字幕 | 欧美整片sss | 91传媒激情理伦片 | 日韩欧美一级二级 | 婷婷五天天在线视频 | 波多野结衣一区 | 久久久国产日韩 | 免费人成在线观看网站 | 日韩美视频 | 成人动漫一区二区 | 精品国产一区二区三区四区在线观看 | 91香蕉亚洲精品 | a级片网站 | 国产成免费视频 | 黄色成人av| 免费看片成人 | av一级一片 | 国产精品美女久久久久久久 | 久久视频精品在线观看 | av黄色在线播放 | 99福利片| 日本不卡一区二区 | 五月婷激情| 国产精品黄色影片导航在线观看 | 永久精品视频 | 中文国产成人精品久久一 | 韩国精品福利一区二区三区 | 99爱精品在线 | 草樱av | 黄色视屏免费在线观看 | 久久精品国产精品亚洲 | 久久电影国产免费久久电影 | 精品一区二区在线看 | 丁香婷婷射 | 久久狠狠亚洲综合 | 91久久久久久国产精品 | 777xxx欧美| 99热官网| 国产九九热视频 | 国产成人精品日本亚洲999 | 国产精品久久免费看 | 激情欧美丁香 | 中文视频在线播放 | 91精品在线视频观看 | 99性视频| 韩国av在线播放 | 丁香综合 | 日韩欧美一级二级 | 亚洲午夜精 | 一区二区高清在线 | 亚洲情婷婷 | 成人理论电影 | 精品99在线视频 | 精品免费视频 | 国产69久久 | 99久久精品免费看 | 午夜精品电影一区二区在线 | 亚洲欧美日韩一级 | 久久精品这里精品 | 国产精品三级视频 | 欧美日韩精品在线播放 | 亚洲区视频在线 | 国产 日韩 欧美 自拍 | sm免费xx网站 | 在线观看你懂的网址 | 久久国产系列 | 在线观看色网站 | 免费三级a | 日本中文字幕在线免费观看 | 国产精品综合久久久久久 | 中文在线天堂资源 | 国产午夜一区二区 | 国产视频在线播放 | 免费av大片 | 91精品在线视频观看 | 一区二区三区四区在线免费观看 | 天天射日 | 欧美激情视频在线观看免费 | 天天艹天天 | 久久好看免费视频 | 欧美成人精品在线 | 久久久wwww| 在线观看911视频 | 中文av网 | 国产一级视频在线免费观看 | 久久久久久国产精品亚洲78 | 亚洲国产网址 | 久久影视中文字幕 | 综合激情伊人 | 日韩精品一区二区三区免费观看视频 | 中文 一区二区 | 91久久一区二区 | 99 色| av免费在线免费观看 | 婷婷国产视频 | 国产伦精品一区二区三区免费 | 91日韩在线视频 | 亚洲精品在线观看视频 | 亚洲午夜电影网 | 欧美亚洲国产一卡 | 亚洲欧美综合 | 午夜国产福利在线 | 日韩高清国产精品 | av导航福利 | 久久久视屏 | 丁香婷婷电影 | 奇米影视8888在线观看大全免费 | 亚洲精品国产精品久久99热 | 久草香蕉在线 | 在线观看视频黄 | 蜜臀精品久久久久久蜜臀 | 久久av高清 | 81国产精品久久久久久久久久 | 一区二区三区国 | 久久黄色成人 | 久久免费播放视频 | 精品美女久久 | 免费在线观看黄网站 | 久久av高清 | 日韩免费一级a毛片在线播放一级 | 精品99在线 | 日韩视频区 | 亚州精品成人 | 亚洲精品在线资源 | 激情视频一区二区三区 | 精品一区二区三区四区在线 | 国产精品免费视频网站 | 亚洲天堂免费视频 | av在线免费在线观看 | 在线视频app| 免费看网站在线 | 久久久电影网站 | 99精品视频精品精品视频 | 久久91网 | 天天拍天天草 | 丁香 久久 综合 | 超碰在线人人草 | 三级av在线| 久久尤物电影视频在线观看 | 丁香花中文在线免费观看 | 91完整版| 中文字幕国产一区二区 | 青青五月天 | 亚洲成人网在线 | 久久久蜜桃一区二区 | 日女人免费视频 | 在线激情小视频 | 国产成人久久久77777 | 成片免费观看视频大全 | 免费69视频 | 欧美日韩国产亚洲乱码字幕 | 国产香蕉久久 | 久久午夜国产 | 亚洲天堂在线观看完整版 | 激情五月亚洲 | 97成人在线免费视频 | 国产色婷婷精品综合在线手机播放 | 欧美成人精品三级在线观看播放 | 日本公妇在线观看 | 丁香视频全集免费观看 | 欧美孕妇与黑人孕交 | 久久久久精 | 在线免费黄色av | 亚洲精品日韩在线观看 | 亚洲精区二区三区四区麻豆 | 91精品国产综合久久婷婷香蕉 | 欧美-第1页-屁屁影院 | 欧美一区二区三区四区夜夜大片 | 97精品国产91久久久久久 | 成人av电影在线播放 | 91亚洲精品乱码久久久久久蜜桃 | 欧美ⅹxxxxxx | 国产精品二区三区 | 久草爱视频 | av片中文| 伊香蕉大综综综合久久啪 | 国产色网| av电影亚洲| 一级免费av | 亚洲电影图片小说 | 国产美女免费 | 亚洲精品乱码久久久一二三 | 日韩在线观看第一页 | 久草在线视频看看 | 久久99国产精品久久99 | 久草在线视频精品 | 人人澡人人澡人人 | 98精品国产自产在线观看 | 国产精品高潮久久av | 国产精品久久久久av免费 | 波多野结衣日韩 | 婷婷丁香在线视频 | 亚洲综合成人在线 | av电影在线播放 | 美女网站视频久久 | 又爽又黄在线观看 | 中文字幕成人在线观看 | 免费福利小视频 | 日日爱影视 | 欧美精品一区二区在线观看 | 日批视频在线播放 | 欧美精品首页 | 国产黄色成人 | www.五月天色 | 999在线精品| 国产国产人免费人成免费视频 | 公与妇乱理三级xxx 在线观看视频在线观看 | 色偷偷88欧美精品久久久 | 国产欧美综合在线观看 | 久久久国产一区二区三区 | 国产自产在线视频 | 91秒拍国产福利一区 | 久久 在线 | 在线观看aaa | 精品国产一区二区三区不卡 | 一区二区三区手机在线观看 | 亚洲欧美视频 | 国产一区二区观看 | 日韩一级精品 | 日韩成人高清在线 | 国产午夜三级 | 日韩免费在线观看视频 | 亚洲国产wwwccc36天堂 | 极品久久久久 | 成人av电影免费在线播放 | 欧美色图视频一区 | 欧美日韩一区二区三区在线观看视频 | 欧美成人xxx | 在线视频中文字幕一区 | 国产一区欧美一区 | 99久久精品国产一区 | 成人91av| 国产精品免费视频久久久 | 久久国产精品成人免费浪潮 | 亚洲热久久| 黄色亚洲精品 | 久草资源在线观看 | www.色五月.com | 亚洲精品mv在线观看 | 69精品视频在线观看 | 99色亚洲| 在线观看中文字幕第一页 | 国产手机在线观看视频 | 久久国产精品99精国产 | 精品国产一区二区三区久久影院 | 亚洲精品视频第一页 | 成人免费中文字幕 | 韩国av免费 | 亚洲最快最全在线视频 | 人人添人人 | 久久久久草 | www.一区二区三区 | 黄色影院在线免费观看 | 日韩久久精品一区 | 久久综合狠狠 | 中文字幕一区二区三区视频 | 欧美在线观看视频一区二区 | 亚洲另类视频在线 | 国产精品18久久久久白浆 | 欧美精品久久久久久久免费 | 丁香国产视频 | av解说在线 | 色婷婷国产精品 | 国产在线91在线电影 | 精品一二三四五区 | 最近免费中文字幕大全高清10 | 亚洲天天做 | 亚洲一区二区三区91 | 日韩精品一区二区在线 | 欧美日韩视频在线播放 | 欧美成年网站 | 91精品国产91久久久久 | 四虎影视精品 | 国产精品久久久久aaaa九色 | 国产精品毛片久久蜜 | 黄免费在线观看 | 欧美极品少妇xbxb性爽爽视频 | 91成版人在线观看入口 | 97高清视频 | 91中文在线观看 | 久久久www成人免费精品张筱雨 | 国产小视频福利在线 | 91在线观看视频 | 久草在线免费看视频 | 欧美成人精品三级在线观看播放 | 在线观看国产 | 丝袜av一区 | 网站在线观看你们懂的 | 香蕉精品视频在线观看 | 久久久精品久久日韩一区综合 | 亚洲精品成人在线 | 亚洲国产精品一区二区尤物区 | 国产破处精品 | 91人人视频在线观看 | 国产高清专区 | 又黄又爽的视频在线观看网站 | 亚洲精品777 | 久久免费99精品久久久久久 | 久久久www免费电影网 | 国产一级视频在线免费观看 | 激情动态 | 欧美一区二区三区在线视频观看 | 国产黄色片免费在线观看 | 久草五月| 四虎影视成人永久免费观看亚洲欧美 | 久久天堂精品视频 | 国产高清av免费在线观看 | 国产精品久久免费看 | 亚洲天天综合网 | 久久精品视频2 | 久久久视屏 | 日韩一区二区三 | 成人三级网站在线观看 | 国产精品久久久久久久久久久久午夜 | www.91成人| 成人亚洲网 | 午夜国产一区 | 免费一级片在线观看 | av网址在线播放 | 超碰在线最新地址 | 日韩一级成人av | 在线观看视频你懂 | 久久精品视频免费 | 九九爱免费视频 | 国产精品成人a免费观看 | 午夜美女网站 | www.com黄| 国产精品中文久久久久久久 | 97免费在线观看视频 | 精品国产电影一区二区 | 免费国产黄线在线观看视频 | 国产精品永久久久久久久www | 97超碰超碰 | 中文字幕888| 亚洲精品国产成人av在线 | 96国产在线| 亚洲一区二区三区精品在线观看 | 久久99久久99免费视频 | 中文字幕亚洲国产 | 蜜桃传媒一区二区 | 国产精品久久久久久久av电影 | 国产成人免费高清 | 99麻豆久久久国产精品免费 | 久久精品最新 | 91视频3p | 日日日天天天 | 日日夜夜网 | 国产99区 | 美女视频黄在线观看 | 亚洲天堂网在线观看视频 | 国产精品久久久久毛片大屁完整版 | 天天综合天天做天天综合 | 精品一区二区电影 | 日韩高清免费在线 | 国产区精品在线观看 | 看片网站黄| 91精品视频免费看 | 黄色av免费电影 | 精品国产一区二区三区男人吃奶 | 91豆花在线观看 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 美女视频黄在线观看 | 日本狠狠干 | 国产 日韩 欧美 自拍 | 五月天久久| 99热播精品 | 久久伊人八月婷婷综合激情 | 精品乱码一区二区三四区 | 欧美日韩后 | av色综合网 | 一区二区视频在线播放 | 99精品国产免费久久久久久下载 | 69人人| 日韩中文久久 | 国产人成一区二区三区影院 | 美女网站色在线观看 | 久久久久久97三级 | 日日夜日日干 | 日韩在线播放av | 久久午夜电影 | 中国一级特黄毛片大片久久 | 国产免费久久精品 | 久久影视一区二区 | 欧美一级艳片视频免费观看 | 亚洲电影图片小说 | 免费在线观看成人小视频 | 中文字幕不卡在线88 | 日韩有码在线播放 | 91女人18片女毛片60分钟 | 国产免费人成xvideos视频 | 午夜av日韩 | 免费涩涩网站 | 中文字幕中文字幕在线中文字幕三区 | 免费久久网站 | 国产精品久久久一区二区 | 黄色网在线播放 | 成人三级黄色 | 日韩aⅴ视频 | 国产精品视屏 | 97在线观| 波多野结衣视频一区二区三区 | 久久精品网址 | 亚洲午夜精 | 日日干夜夜草 | 人人插人人费 | 中文字幕在线免费看 | 欧美在线视频日韩 | 亚洲一级免费观看 | 91精品国产欧美一区二区成人 | 人人看人人爱 | 欧美无极色 | 国产精品原创在线 | 91色网址 | 国产三级精品三级在线观看 | 在线免费观看视频一区 | 亚洲精品1234区 | 九九久久久久久久久激情 | 国产一级二级三级在线观看 | 日本精品中文字幕在线观看 | 日韩免费在线一区 | 亚洲影院国产 | www.久久精品视频 | 欧美日韩亚洲一 | 亚洲精品999 | 天天天天干 | 国产美女主播精品一区二区三区 | 韩国av电影在线观看 | 狠狠狠色丁香婷婷综合久久88 | 成人影片在线播放 | 97爱| 日韩有码在线播放 | 伊人影院得得 | 欧美一区二区精美视频 | 国产一区不卡在线 | 免费涩涩网站 | 亚洲综合色丁香婷婷六月图片 | 国产一区二区三区免费在线 | 亚洲电影久久久 | a成人v | 久久久久久久久影院 | 婷婷综合久久 | 久久电影中文字幕视频 | 日韩免费三级 | 中文字幕一区二区三区四区在线视频 | 在线精品视频在线观看高清 | 四虎影视国产精品免费久久 | 最近日本中文字幕a | 人人干天天射 | 日日干夜夜操视频 | 久久精品牌麻豆国产大山 | 久久久久久久久久影视 | 亚洲精品高清一区二区三区四区 | 日韩中文三级 | 丁香婷婷网| 精品在线视频一区 | 亚洲视频999 | 成人免费视频在线观看 | 国产成人精品av在线观 | 亚洲国产色一区 | 国产一级a毛片视频爆浆 | 久久久99精品免费观看乱色 | 欧美一级免费 | 欧美aa一级 | 亚洲精品日韩在线观看 | 亚洲一区二区三区毛片 | 久久精品国产免费看久久精品 | a爱爱视频 | 国产裸体永久免费视频网站 | 欧美色图东方 | 91社区国产高清 | 91视视频在线直接观看在线看网页在线看 | a级国产片| 国偷自产中文字幕亚洲手机在线 | 婷婷精品国产欧美精品亚洲人人爽 | 一区二区三区 中文字幕 | 亚洲人在线视频 | 曰韩在线| 毛片永久新网址首页 | 午夜视频播放 | 免费观看一级一片 | 日韩av成人在线观看 | 国产婷婷视频在线 | 国产精品一区在线播放 | 激情五月六月婷婷 | 人人澡人人舔 | 久久国产亚洲精品 | 国内精品视频在线 | 免费一级片在线 | 成人国产一区二区 | 亚洲精品国偷自产在线91正片 | 国产免费又爽又刺激在线观看 | 日韩网站在线 | 九九视频精品免费 | 久久免费视频在线观看6 | 亚洲精品视频在线观看视频 | 久久与婷婷 | 特级毛片在线 | 97网站| 亚洲另类交 | 日韩av在线小说 | 黄色三级在线看 | 久久人人爽人人爽人人片 | 亚洲天堂网在线视频 | 日韩视频在线观看免费 | 久草电影免费在线观看 | 99国产一区二区三精品乱码 | 国产精品理论片在线观看 | 亚洲免费观看视频 | 欧美另类高清 videos | 国产精品美女视频 | 国产精品6| 久久久999免费视频 日韩网站在线 | 韩日精品中文字幕 | 欧洲精品码一区二区三区免费看 | 视频91| 欧美九九视频 | 中文字幕欧美日韩va免费视频 | 国产免费黄色 | 91探花国产综合在线精品 | 国产特级毛片aaaaaa毛片 | 久久免费视频这里只有精品 | 国产免费黄视频在线观看 | 午夜精品福利一区二区 | 怡红院av久久久久久久 | 97碰碰碰| 日韩大片免费观看 | 国产一区二区电影在线观看 | 日本韩国精品在线 | 麻豆91视频 | 久久久观看 | 成人黄色小说视频 | 成全免费观看视频 | 国产精品99视频 | 中文字幕高清视频 | 日本久久久久久久久 | 免费在线91 | 午夜免费电影院 | 国产成人资源 | www.久草.com| 97视频在线观看成人 | 中文字幕有码在线 | av成人亚洲 | 九九热精品视频在线播放 | 一区二区av | 亚洲精品美女 | 人人插人人干 | 在线观看国产91 | 久久经典视频 | 91热这里只有精品 | 午夜黄色 | 日日草夜夜操 | 91精品视频在线看 | 五月婷婷综合久久 | 久久夜色精品国产欧美乱 | 超碰在线97国产 | 韩国av不卡 | 久久综合五月天婷婷伊人 | 久久成人国产精品一区二区 | 久久久免费 | 五月天婷婷免费视频 | 亚洲精品国产精品国自产观看 | 国产一区免费在线 | 在线观看久 | 涩五月婷婷 | 亚洲成av人片在线观看无 | 在线观看视频国产 | 婷婷福利影院 | 亚洲乱码久久 | 国产精品不卡在线 | 国产成人精品在线观看 | 91高清免费在线观看 | 99视频播放 | 国产在线播放一区 | 国产精品va最新国产精品视频 | 国产精品久久久久永久免费 | 美女中文字幕 | 国产v在线| 99精品在线视频播放 | 免费视频你懂的 | 麻豆极品 | 69av国产 | 天天艹天天 | 玖玖精品在线 | 久久精品亚洲精品国产欧美 | 开心色停停 | 99久久久国产精品 | 一区二区视频播放 | 在线日本看片免费人成视久网 | 久青草视频 | 黄色软件在线观看视频 | 在线观看视频在线 | 国产午夜精品在线 | 色天天中文 | 国产精品精 | 男女啪啪免费网站 | 在线观看视频在线 | 久久精品系列 | 不卡视频一区二区三区 | 在线免费观看羞羞视频 | 亚洲人在线视频 | 久久黄网站| 久久综合网色—综合色88 | 精品二区视频 | 午夜精品视频一区二区三区在线看 | 麻豆视频免费观看 | 夜夜夜夜夜夜操 | 国产免费xvideos视频入口 | 欧美久久久一区二区三区 | 久久理论视频 | 天天在线视频色 | 亚洲精品黄色片 |