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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

打包jar文件 外部调用资源 so等

發(fā)布時間:2025/3/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 打包jar文件 外部调用资源 so等 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一個非常好的從jar文件中加載so動態(tài)庫方法,在android的gif支持開源中用到。這個項目的gif解碼是用jni c實現(xiàn)的,避免了OOM等問題。

項目地址:https://github.com/koral--/android-gif-drawable

如果是把java文件生成jar。jni生成的so文件放到使用apk的libs/armeabi/lib_gif.so.....

gifExample.apk:

/libs/gif.jar

/libs/armeabi/lib_gi.so

這樣做會報錯,提示xml里面找不到GifImageView。

只能用項目之間依賴,so會自動進入生成的apk,不用拷貝。

?

調(diào)用方法:

//開始調(diào)用:static {LibraryLoader.loadLibrary(null, LibraryLoader.BASE_LIBRARY_NAME);}

進入這里:

package pl.droidsonroids.gif;import android.content.Context; import android.support.annotation.NonNull;import java.lang.reflect.Method;/*** Helper used to work around native libraries loading on some systems.* See <a href="https://medium.com/keepsafe-engineering/the-perils-of-loading-native-libraries-on-android-befa49dce2db">ReLinker</a> for more details.*/ public class LibraryLoader {static final String SURFACE_LIBRARY_NAME = "pl_droidsonroids_gif_surface";static final String BASE_LIBRARY_NAME = "pl_droidsonroids_gif";private static Context sAppContext;/*** Intitializes loader with given `Context`. Subsequent calls should have no effect since application Context is retrieved.* Libraries will not be loaded immediately but only when needed.* @param context any Context except null*/public static void initialize(@NonNull final Context context) {sAppContext = context.getApplicationContext();}static Context getContext() {if (sAppContext == null) {try {final Class<?> activityThread = Class.forName("android.app.ActivityThread");final Method currentApplicationMethod = activityThread.getDeclaredMethod("currentApplication");sAppContext = (Context) currentApplicationMethod.invoke(null);} catch (Exception e) {throw new RuntimeException("LibraryLoader not initialized. Call LibraryLoader.initialize() before using library classes.", e);}}return sAppContext;}static void loadLibrary(Context context, final String library) {try {System.loadLibrary(library);} catch (final UnsatisfiedLinkError e) {if (SURFACE_LIBRARY_NAME.equals(library)) {loadLibrary(context, BASE_LIBRARY_NAME);}if (context == null) {context = getContext();}ReLinker.loadLibrary(context, library);}} }

?

最終到這里:

1 /** 2 * Copyright 2015 KeepSafe Software, Inc. 3 * <p/> 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * <p/> 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * <p/> 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package pl.droidsonroids.gif; 17 18 import android.annotation.SuppressLint; 19 import android.content.Context; 20 import android.content.pm.ApplicationInfo; 21 import android.os.Build; 22 23 import java.io.Closeable; 24 import java.io.File; 25 import java.io.FileOutputStream; 26 import java.io.FilenameFilter; 27 import java.io.IOException; 28 import java.io.InputStream; 29 import java.io.OutputStream; 30 import java.util.zip.ZipEntry; 31 import java.util.zip.ZipFile; 32 33 /** 34 * Based on https://github.com/KeepSafe/ReLinker 35 * ReLinker is a small library to help alleviate {@link UnsatisfiedLinkError} exceptions thrown due 36 * to Android's inability to properly install / load native libraries for Android versions before 37 * API 21 38 */ 39 class ReLinker { 40 private static final String LIB_DIR = "lib"; 41 private static final int MAX_TRIES = 5; 42 private static final int COPY_BUFFER_SIZE = 8192; 43 44 private ReLinker() { 45 // No instances 46 } 47 48 /** 49 * Utilizes the regular system call to attempt to load a native library. If a failure occurs, 50 * then the function extracts native .so library out of the app's APK and attempts to load it. 51 * <p/> 52 * <strong>Note: This is a synchronous operation</strong> 53 */ 54 static void loadLibrary(Context context, final String library) { 55 final String libName = System.mapLibraryName(library); 56 synchronized (ReLinker.class) { 57 final File workaroundFile = unpackLibrary(context, libName); 58 System.load(workaroundFile.getAbsolutePath()); 59 } 60 } 61 62 /** 63 * Attempts to unpack the given library to the workaround directory. Implements retry logic for 64 * IO operations to ensure they succeed. 65 * 66 * @param context {@link Context} to describe the location of the installed APK file 67 * @param libName The name of the library to load 68 */ 69 private static File unpackLibrary(final Context context, final String libName) { 70 File outputFile = new File(context.getDir(LIB_DIR, Context.MODE_PRIVATE), libName);// + BuildConfig.VERSION_NAME); 71 if (outputFile.isFile()) { 72 return outputFile; 73 } 74 75 final File cachedLibraryFile = new File(context.getCacheDir(), libName );//+ BuildConfig.VERSION_NAME); 76 if (cachedLibraryFile.isFile()) { 77 return cachedLibraryFile; 78 } 79 80 final FilenameFilter filter = new FilenameFilter() { 81 @Override 82 public boolean accept(File dir, String filename) { 83 return filename.startsWith(libName); 84 } 85 }; 86 clearOldLibraryFiles(outputFile, filter); 87 clearOldLibraryFiles(cachedLibraryFile, filter); 88 89 final ApplicationInfo appInfo = context.getApplicationInfo(); 90 final File apkFile = new File(appInfo.sourceDir); 91 ZipFile zipFile = null; 92 try { 93 zipFile = openZipFile(apkFile); 94 95 int tries = 0; 96 while (tries++ < MAX_TRIES) { 97 ZipEntry libraryEntry = getLibraryEntry(libName, zipFile); 98 99 InputStream inputStream = null; 100 FileOutputStream fileOut = null; 101 try { 102 inputStream = zipFile.getInputStream(libraryEntry); 103 fileOut = new FileOutputStream(outputFile); 104 copy(inputStream, fileOut); 105 } catch (IOException e) { 106 if (tries > MAX_TRIES / 2) { 107 outputFile = cachedLibraryFile; 108 } 109 continue; 110 } finally { 111 closeSilently(inputStream); 112 closeSilently(fileOut); 113 } 114 setFilePermissions(outputFile); 115 break; 116 } 117 } finally { 118 closeSilently(zipFile); 119 } 120 return outputFile; 121 } 122 123 @SuppressWarnings("deprecation") //required for old API levels 124 private static ZipEntry getLibraryEntry(final String libName, final ZipFile zipFile) { 125 String jniNameInApk; 126 127 ZipEntry libraryEntry = null; 128 // if (Build.VERSION.SDK_INT >= 21 && Build.SUPPORTED_ABIS.length > 0) { 129 // for (final String ABI : Build.SUPPORTED_ABIS) { 130 // jniNameInApk = "lib/" + ABI + "/" + libName; 131 // libraryEntry = zipFile.getEntry(jniNameInApk); 132 // 133 // if (libraryEntry != null) { 134 // break; 135 // } 136 // } 137 // } else 138 139 { 140 jniNameInApk = "lib/" + Build.CPU_ABI + "/" + libName; 141 libraryEntry = zipFile.getEntry(jniNameInApk); 142 } 143 144 if (libraryEntry == null) { 145 throw new IllegalStateException("Library " + libName + " for supported ABIs not found in APK file"); 146 } 147 return libraryEntry; 148 } 149 150 private static ZipFile openZipFile(final File apkFile) { 151 int tries = 0; 152 ZipFile zipFile = null; 153 while (tries++ < MAX_TRIES) { 154 try { 155 zipFile = new ZipFile(apkFile, ZipFile.OPEN_READ); 156 break; 157 } catch (IOException ignored) { 158 } 159 } 160 161 if (zipFile == null) { 162 throw new RuntimeException("Could not open APK file: " + apkFile.getAbsolutePath()); 163 } 164 return zipFile; 165 } 166 167 @SuppressWarnings("ResultOfMethodCallIgnored") //intended, nothing useful can be done 168 private static void clearOldLibraryFiles(final File outputFile, final FilenameFilter filter) { 169 final File[] fileList = outputFile.getParentFile().listFiles(filter); 170 if (fileList != null) { 171 for (File file : fileList) { 172 file.delete(); 173 } 174 } 175 } 176 177 @SuppressWarnings("ResultOfMethodCallIgnored") //intended, nothing useful can be done 178 @SuppressLint("SetWorldReadable") //intended, default permission 179 private static void setFilePermissions(File outputFile) { 180 // Try change permission to rwxr-xr-x 181 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { 182 outputFile.setReadable(true, false); 183 outputFile.setExecutable(true, false); 184 outputFile.setWritable(true); 185 } 186 } 187 188 /** 189 * Copies all data from an {@link InputStream} to an {@link OutputStream}. 190 * 191 * @param in The stream to read from. 192 * @param out The stream to write to. 193 * @throws IOException when a stream operation fails. 194 */ 195 private static void copy(InputStream in, OutputStream out) throws IOException { 196 final byte[] buf = new byte[COPY_BUFFER_SIZE]; 197 while (true) { 198 final int bytesRead = in.read(buf); 199 if (bytesRead == -1) { 200 break; 201 } 202 out.write(buf, 0, bytesRead); 203 } 204 } 205 206 /** 207 * Closes a {@link Closeable} silently (without throwing or handling any exceptions) 208 * 209 * @param closeable {@link Closeable} to close 210 */ 211 private static void closeSilently(final Closeable closeable) { 212 try { 213 if (closeable != null) { 214 closeable.close(); 215 } 216 } catch (IOException ignored) { 217 } 218 } 219 } View Code

獲取當前apk路徑

final ApplicationInfo appInfo = context.getApplicationInfo();
Log.d("zhibin","appInfo.sourceDir: "+ appInfo.sourceDir);
輸出:/system/app/xxx.apk


對應sdk 5.0以下版本,修正一些不支持的變量:

@SuppressWarnings("deprecation") //required for old API levelsprivate static ZipEntry getLibraryEntry(final String libName, final ZipFile zipFile) {String jniNameInApk;ZipEntry libraryEntry = null; // if (Build.VERSION.SDK_INT >= 21 && Build.SUPPORTED_ABIS.length > 0) { // for (final String ABI : Build.SUPPORTED_ABIS) { // jniNameInApk = "lib/" + ABI + "/" + libName; // libraryEntry = zipFile.getEntry(jniNameInApk); // // if (libraryEntry != null) { // break; // } // } // } else {jniNameInApk = "lib/" + Build.CPU_ABI + "/" + libName;Log.d("zhibin","Search directory for jniNameInApk: "+ jniNameInApk);libraryEntry = zipFile.getEntry(jniNameInApk);//直接指定if(libraryEntry == null){jniNameInApk = "lib/armeabi" + "/" + libName;Log.d("zhibin","Correct it to jniNameInApk: "+ jniNameInApk);libraryEntry = zipFile.getEntry(jniNameInApk);}}if (libraryEntry == null) {throw new IllegalStateException("Library " + libName + " for supported ABIs not found in APK file");}return libraryEntry;}

?

?

?

?

?

?

?

?

?

?

共外部調(diào)用資源:

?

背景:工作中需要開發(fā)一個廣告插件,并提供給其它人使用。這里就需要把自己的插件程序,打成jar來提供給他人引用。
但是遇到一個問題:插件程序中無法使用資源文件。

試過以下幾種方式解決:

1、從插件程序中導出jar包
論壇上有人說導出的jar包中無法包含Drawable等資源文件,一些圖片等數(shù)據(jù),需要放到Assert文件中使用。
其實,關于這個問題,我做了嘗試:
首先,需要說明導出jar包含什么文件是由你導出時選擇來決定的,比如下圖:

如果你選擇了res文件夾,則打包出的jar文件是可以包含res文件到。

但是包含文件并不代表可以使用。如果你想當然在插件程序中使用R.drawable.XXXX等方式獲取
資源會報錯!
當然別人通過R.XX.XX也只能看到自己的資源文件,而無法獲取jar中的資源文件。

2、獲取jar包中的文件

雖然無法直接引用資源文件,但是如果外邊程序想獲取某個資源文件時,也是可行的。
其原理是以數(shù)據(jù)流讀取jar中指定的文件。
比如讀取Assert文件下的icon.jpg文件:
你可以在插件中封裝一個對外的方法:
????publicstatic Drawable getAssertDrawable(Context context,StringfileName){
???????try {
??????????InputStreaminStream=context.getAssets().open(fileName);
??????????return newBitmapDrawable(BitmapFactory.decodeStream(inStream));
???????} catch(IOException e) {
?????????Log.e(LOG_TAG, "Assert中"+fileName+"不存在");
???????}
???????returnnull;
????}
直接使用該方法可以得到文件。
后來又嘗試在外部程序,直接使用context.getAssets().open(fileName)方法獲取jar中文件,
讓人喜出望外的是竟然成功了。呵呵!
后來分析,外部程序編譯時,其實連同jar包中內(nèi)容一起混編。jar包中的Assert文件會同外部程序的Assert一起
由AssertManager管理。
所以當你jar包中Assert內(nèi)部文件和外部Assert中的文件有命名沖突時,編譯器會報錯的。

另外,還有人提供另外一種方法來讀取諸如Drawable等文件夾下的文件。
????publicstatic Drawable getDrawableForJar(String resName,Classclass){
???????InputStreaminStream=class.getResourceAsStream(resName);
???????return newBitmapDrawable(BitmapFactory.decodeStream(inStream));
????}
使用class.getResourceAsStream()方法讀取,注意這里resName是文件的相對路徑,比如jar根目錄下res/drawable/icon.png,
則調(diào)用方法為:class.getResourceAsStream(/res/drawable/icon.png);

這里主要是采用ClassLoader的下面幾個方法來實現(xiàn):

  public URL getResource(String name);

  public InputStream getResourceAsStream(String name)

  public static InputStreamgetSystemResourceAsStream(String name)

  public static URL getSystemResource(String name)

  后兩個方法可以看出是靜態(tài)的方法,這幾個方法都可以從Jar中讀取圖片資源,但是對與動畫的gif文件,筆者在嘗試過程中發(fā)現(xiàn),存在一些差異。

  String gifName為Gif文件在Jar中的相對路徑。

  (1)使用了兩個靜態(tài)方法

BufferedImageimage?=?ImageIO.read(ClassLoader.getSystemResourceAsStream(gifName));

  或者

Image image?=?Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource(gifName));

  這兩種方式可以成功地讀取gif文件,但是對于gif動畫,顯示出來地是靜態(tài)的。

  (2)使用其他兩個方法

Image image?=?Toolkit.getDefaultToolkit().getImage(?this?.getClass.getClassLoader() .getResource(gifName));

  再這種方式下動畫可以正常顯示了。


3、使用library方法加載資源文件?

在論壇中看到帖子講述如何把工程作為libarary,讓其他工程添加library,編譯后會自動生成jar,然后在哪來使用。?
當時看到此貼,喜出望外,所以趕緊嘗試下!?

方法:選擇插件工程,右鍵選擇屬性,選擇Android,勾選下面Is Liabrary選項。?
然后,選擇我們現(xiàn)有的工程,右鍵屬性,選擇Android,在library下add相應的庫。你會看到,剛才我們設置的插件項目,就在其中。最后,點擊應用,完成。?

詳細步驟:?

按如下方法設置:

1. 假設要引用的android工程叫LibProject,引入到的工程叫MainProject;

2.設置LibProject,右鍵->Properties->Android,將Islibrary項選中,然后Apply;

3.設置MainProject,右鍵->->Properties->Android,在Library中,點擊Add按鈕,將LibProject工程加入,Apply即可。



你會看到我們的工程中多出插件工程的引用,而且可以使用R.XXX.XXX獲取資源文件。?

以為可以解決了,但是發(fā)現(xiàn)并沒有生成想要的jar文件。在插件工程中,倒是有編譯的class文件,卻沒有jar包。?
而我們往往是不能像這樣把原工程給別人直接引用的。?
經(jīng)過多次試驗,始終沒有生成jar,非常奇怪別人怎么弄得。。。?

另外,拿以前通過這種方式生成的jar文件看,里面也不包含資源文件夾。。?
可以把生成的類共享出去。

把.so文件打包到jar中

查了一些方法,其中一個我比較喜歡,再load動態(tài)庫的時候,把so文件復制到tmp目錄下,然后刪掉

//modify the static blockstatic {try { Class c = HelloJNI.class; URL location = c.getProtectionDomain().getCodeSource().getLocation(); ZipFile zf = new ZipFile(location.getPath()); // libhellojni.so is put in the lib folder InputStream in = zf.getinputStream(zf.getEntry("lib/libhellojni.so")); File f = File.createTempFile("JNI-", "Temp"); FileOutputStream out = new FileOutputStream(f); byte [] buf = new byte[1024]; int len; while ((len = in.read(buf)) > 0) out.write(buf, 0, len); in.close(); out.close(); System.load(f.getAbsolutePath()); f.delete(); } catch (Exception e) { // I am still lazy ~~~ e.printStackTrace(); } }

?

轉載于:https://www.cnblogs.com/bigben0123/p/5028352.html

總結

以上是生活随笔為你收集整理的打包jar文件 外部调用资源 so等的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

91porny九色91啦中文 | 精品国产综合区久久久久久 | 精品视频久久久 | 91热视频在线观看 | 免费精品国产 | 色偷偷88888欧美精品久久久 | 久草在线免费资源 | 麻豆视频www | 在线视频 成人 | 伊人电影在线观看 | 色狠狠综合天天综合综合 | 午夜久久久久久久久久久 | 少妇精品久久久一区二区免费 | 国产麻豆剧果冻传媒视频播放量 | 黄色视屏免费在线观看 | 毛片888| 国产麻豆精品久久 | 日韩综合在线观看 | 97在线视频免费观看 | 久草视频在| 国产伦精品一区二区三区高清 | 一区二区伦理电影 | 天天插综合 | av亚洲产国偷v产偷v自拍小说 | 精品久久久久一区二区国产 | 国产91精品一区二区绿帽 | 深夜成人av | 精品色999 | 特片网久久 | 麻豆传媒在线免费看 | 久久毛片高清国产 | 日批视频 | 国产在线观看污片 | 国内外成人免费在线视频 | 99精品视频免费观看视频 | 国产永久免费高清在线观看视频 | 综合久久婷婷 | 国产成人一区二区三区在线观看 | 激情欧美一区二区三区免费看 | 久操久| 久久一精品| 成人手机在线视频 | 天天爱天天插 | 久久99久久精品国产 | 日韩av午夜在线观看 | 99精品偷拍视频一区二区三区 | 精品国产精品国产偷麻豆 | 国产一级二级在线 | 久久激情综合网 | 精品视频在线播放 | 国产精品精品久久久 | 日本精品在线视频 | 久久伊人精品一区二区三区 | 一级性av| 免费在线国产精品 | 午夜av在线播放 | 久久国产精品久久久 | 热久久视久久精品18亚洲精品 | 亚洲一级黄色av | 天天干,夜夜爽 | 国产高清视频免费在线观看 | 日韩免费高清在线观看 | av 在线观看 | 中文字幕一区二区三区视频 | 91在线观| 日本黄色大片免费看 | 欧美ⅹxxxxxx | www.亚洲精品 | 久久久久免费精品国产小说色大师 | 美女网站在线播放 | 色婷婷a| 18国产精品白浆在线观看免费 | 亚洲欧美国产日韩在线观看 | 国产精品去看片 | 免费国产一区二区视频 | 日韩中文字幕免费在线观看 | 欧美成人黄| 日韩免费视频 | 夜夜夜草 | 国产又粗又硬又爽的视频 | 国产成人久久 | 精品国产aⅴ麻豆 | 手机成人av | 精品久久网 | 日本久久久久久科技有限公司 | 欧美日韩国产精品一区二区 | 日日干夜夜骑 | 日韩免费在线观看视频 | 色wwww| 国产做aⅴ在线视频播放 | 日韩精品久久久久久久电影竹菊 | 黄色片免费电影 | 免费观看的av | 国产在线第三页 | 九九九九九国产 | 日韩av资源站 | 九九九九热精品免费视频点播观看 | 成人黄大片视频在线观看 | 丁香久久久 | 日日干精品 | 日韩精品一区二区三区在线视频 | 色综合天天色综合 | 精品视频99 | 亚洲无吗av| 国产xx视频 | 黄网在线免费观看 | 欧美另类xxx| 色播六月天 | 久草在线资源免费 | 精品久久久网 | 欧美一区,二区 | 玖玖在线资源 | 黄色毛片视频免费观看中文 | 91日韩精品视频 | 久久免费视频一区 | 97福利社| 久久精品一区二区国产 | 一本一本久久aa综合精品 | 在线观看一级视频 | 激情五月***国产精品 | 欧美国产日韩一区二区三区 | 日韩精品专区在线影院重磅 | 国产中文字幕国产 | 一区二区三区在线免费 | 成人91在线| 日本黄色免费播放 | 在线免费中文字幕 | 一区二区三区电影在线播 | 日韩精品在线看 | 精品亚洲午夜久久久久91 | 亚洲精品视频在线观看免费视频 | 午夜av一区 | 欧洲色吧 | 国产999视频在线观看 | 久久久久婷 | 亚洲人久久 | 亚洲精品免费在线播放 | 中文字幕亚洲综合久久五月天色无吗'' | 一区二区视频在线看 | 久久精品99国产精品亚洲最刺激 | 成人黄色小视频 | 午夜精品一区二区三区免费视频 | 91电影福利 | 精品综合久久久 | 一级片色播影院 | 国产九九精品视频 | 国产高清黄 | 免费国产在线精品 | 91豆花在线观看 | 91精品国产一区二区在线观看 | 日韩电影在线观看一区二区三区 | 久久久受www免费人成 | 欧美黄污视频 | 国产精品一区二区久久久 | 黄色毛片电影 | 狠狠色狠狠色 | 美女免费视频一区二区 | 久久免费国产 | 亚洲播放一区 | 午夜精品一区二区三区免费 | 成人欧美在线 | 国产精品成人av在线 | 在线观看日韩视频 | 成人毛片在线视频 | 字幕网在线观看 | 91精品啪在线观看国产 | 午夜丁香网 | av电影中文字幕 | 日韩超碰在线 | 97在线观看免费观看 | 欧美日韩三区二区 | 在线观看视频中文字幕 | 亚洲精品字幕在线 | 久色婷婷| 91视频com | 夜夜视频 | 久久久国产精品电影 | www.狠狠插.com | 99在线免费视频观看 | 三级在线国产 | 国产在线观看xxx | 日韩欧美成人网 | 亚洲国内精品 | 日韩在线视频网站 | 中文字幕在线观看资源 | 日韩字幕在线 | 国产精品情侣视频 | www色婷婷com | 免费看的视频 | 九九九在线观看视频 | 色综合天天狠狠 | 成人在线免费观看网站 | 在线黄色国产 | 免费看片日韩 | 天天碰天天操 | 免费看麻豆 | 五月天激情电影 | 91av视频| 亚洲综合成人专区片 | 天天草夜夜 | 久久成人资源 | 国产在线精品观看 | 成人高清av在线 | 国内精品久久久久久久影视简单 | 国产午夜一区二区 | 最新高清无码专区 | 色射色 | 91视频在线免费下载 | 久久国产亚洲视频 | 综合精品在线 | 黄色免费网战 | 日韩精品一区电影 | 美女免费网视频 | 97视频一区 | 亚洲一级特黄 | 国产一区二区高清不卡 | 很黄很黄的网站免费的 | 久草精品在线观看 | 天天操伊人| 91久久在线观看 | 日韩电影一区二区在线 | 六月丁香久久 | 久久人人爽人人片av | 色吊丝在线永久观看最新版本 | 精品久久久久久久久中文字幕 | 激情视频二区 | 国产精品999久久久 久产久精国产品 | 999久久久久久久久 69av视频在线观看 | 97超碰免费在线 | 国产福利午夜 | 狠狠干夜夜操 | 九九九九热精品免费视频点播观看 | 亚洲精品视频中文字幕 | 四虎影视成人精品国库在线观看 | 免费电影一区二区三区 | 高清精品在线 | 精品国产免费av | 日本精品久久久久中文字幕 | 成人国产精品电影 | 一区二区三区四区五区六区 | 99久久婷婷国产精品综合 | 高清国产一区 | 五月婷婷激情综合 | 激情久久五月 | 91成人在线观看喷潮 | 久色婷婷 | 天堂在线v | 狠狠操综合| 欧美精品国产精品 | 波多野结衣一区二区三区中文字幕 | 青草视频在线播放 | 五月婷婷毛片 | 69中文字幕 | 99久久精品国产免费看不卡 | 91视频久久久久久 | 在线免费观看视频一区二区三区 | 精品国产乱码久久久久久浪潮 | 亚洲国产三级 | 亚洲日本国产 | 日韩精品中文字幕一区二区 | 日韩高清www | 欧美日韩高清一区二区 | 黄色软件在线观看免费 | 深爱激情五月网 | 91麻豆精品91久久久久同性 | 亚洲黄网址 | 亚洲国产人午在线一二区 | 激情视频在线观看网址 | 国产精品视频在线观看 | 最新日韩在线观看视频 | 精品二区久久 | 日韩在线观看小视频 | 久久久久五月天 | 99日精品 | 92精品国产成人观看免费 | 黄在线免费看 | 日本精品久久久一区二区三区 | 一区二区视频在线看 | 午夜久久久精品 | 亚洲国产精品第一区二区 | 亚洲国产精品va在线看黑人 | 国产精品videossex国产高清 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 亚洲精品免费在线观看 | 丁香婷婷在线观看 | 国产黄色在线看 | 国产日本在线 | 青青久草在线视频 | av久久久 | 午夜精品久久久久久久99水蜜桃 | 免费在线观看成人小视频 | 精品麻豆入口免费 | 99久久久久久久久 | 特黄特色特刺激视频免费播放 | 免费视频xnxx com| 免费在线黄色av | 波多野结衣视频一区二区三区 | 在线视频婷婷 | 毛片888| 日韩免费在线视频 | 中文字幕一区二区三区久久 | 国产一二三四在线视频 | 亚洲国产网站 | 九九有精品| av在线免费在线 | 久久精品一区二区三区视频 | 成人免费观看视频大全 | 99热官网| 五月宗合网| 国产一区二区在线播放 | 99性视频| 97超碰人人澡人人爱 | 小草av在线播放 | 亚洲国产99| 国产女人18毛片水真多18精品 | 黄色av电影一级片 | 99热手机在线 | 国产精品亚洲人在线观看 | 久草免费新视频 | 国产日产精品一区二区三区四区的观看方式 | 园产精品久久久久久久7电影 | 亚洲成人蜜桃 | 久久99精品久久久久久清纯直播 | 国产黄色在线 | 97成人资源 | 亚洲免费资源 | 欧美动漫一区二区三区 | 2023av在线| 亚洲最大色 | 国产高清不卡av | 亚洲欧美成人综合 | 国产拍揄自揄精品视频麻豆 | 香蕉久草 | 狠狠干夜夜| 日韩手机在线观看 | www.888av| 国产精品美女久久久久久久久 | 亚洲精品在线电影 | 亚洲免费成人av电影 | 黄色亚洲免费 | 日本不卡一区二区三区在线观看 | 日本三级全黄少妇三2023 | 欧美在线视频免费 | 欧美片网站yy | 粉嫩一区二区三区粉嫩91 | 亚洲最大的av网站 | 久久久久国产成人精品亚洲午夜 | 成人一级电影在线观看 | 欧美日韩一区二区三区不卡 | 久久深夜福利免费观看 | 成人在线观看你懂的 | 91大神精品视频在线观看 | 国产做爰视频 | 综合久久精品 | 久久精品国产免费观看 | 久久国产欧美日韩精品 | 狠狠做深爱婷婷综合一区 | 色91av | 国产午夜剧场 | 天天躁日日躁狠狠躁av麻豆 | 在线观看免费一区 | 不卡视频国产 | 在线成人高清电影 | 日韩高清观看 | 国产精品久久婷婷六月丁香 | 国产91九色蝌蚪 | 在线日韩av | 日韩网站在线播放 | 91久久国产综合精品女同国语 | av丝袜在线 | 精品久久久久久亚洲 | 天天躁天天操 | 国产精品免费一区二区 | 国产日韩精品欧美 | 亚洲免费永久精品国产 | 久久久伦理 | 97成人精品视频在线播放 | 日韩欧美精选 | 久草视频在线资源站 | 成人在线视频免费看 | 国产精品久久久久久69 | 国产精品在线看 | 91av在线免费播放 | 美女黄视频免费 | 国内揄拍国内精品 | 中文字幕在线色 | www色| 毛片网站免费在线观看 | 国产视频精选 | 黄色大全免费网站 | 中文字幕在线观看网站 | 91亚洲狠狠婷婷综合久久久 | 中文字幕亚洲综合久久五月天色无吗'' | 久久日本视频 | 欧美精品国产精品 | 一区二区三区久久精品 | 日韩三级免费观看 | 亚洲永久精品一区 | 五月婷婷综合激情 | 丁香网五月天 | 日日夜夜综合 | 亚洲精品免费观看 | 麻豆视频在线免费 | 欧美成年人在线视频 | 久久久国产精品久久久 | 美女网色 | 久久人人爽| 亚洲综合色视频在线观看 | 亚州精品在线视频 | a电影在线观看 | a色视频 | 午夜精品一区二区三区免费 | 亚洲少妇自拍 | 五月婷婷综合久久 | 五月天综合色 | 中文字幕乱在线伦视频中文字幕乱码在线 | 青青五月天 | 青春草免费在线视频 | 欧洲高潮三级做爰 | 日日操夜夜操狠狠操 | 精品天堂av | 国产大片黄色 | 国产在线综合视频 | 亚洲一区精品二人人爽久久 | 亚洲精品999 | 日韩激情中文字幕 | 色婷婷六月天 | 国产精品久久久久久久久免费看 | 狠狠狠狠狠狠天天爱 | 亚州国产精品久久久 | 国产精品a久久久久 | 黄色免费电影网站 | 91免费试看 | 国产成人精品免高潮在线观看 | 成人亚洲精品久久久久 | 在线看日韩 | 97超碰在线免费 | 男女啪啪免费网站 | 毛片永久免费 | 成人av免费看 | 婷婷在线网 | 日韩性久久 | 国产精品久久久久久爽爽爽 | 久草影视在线观看 | 97成人免费视频 | 国产三级午夜理伦三级 | 在线 视频 一区二区 | 国产精品粉嫩 | 国产精品12| 欧美日韩在线精品一区二区 | 天天操天天添天天吹 | 香蕉视频最新网址 | www.国产在线视频 | av电影中文字幕 | 97超视频免费观看 | 精品色综合| 国产高清亚洲 | 久久精品国产亚洲精品 | 亚洲精品中文字幕在线观看 | 欧美激情精品久久久久久免费印度 | 青青河边草免费观看完整版高清 | 久久这里只有精品23 | 91av福利视频 | 五月天六月婷婷 | 五月色婷 | 91麻豆精品国产91久久久更新时间 | 天天要夜夜操 | av一区二区三区在线播放 | 91在线91 | 在线观看中文字幕一区二区 | 久久国产综合视频 | 在线日韩一区 | 亚洲视频播放 | 久久人人精品 | 人人插人人艹 | 亚洲在线资源 | 免费a网址 | 日韩欧美在线高清 | 国产精品扒开做爽爽的视频 | 精品1区2区 | 中文字幕在线观看免费高清电影 | 久久永久免费视频 | 久久夜夜爽 | 国产成人一级电影 | 中文区中文字幕免费看 | 久久狠狠亚洲综合 | 天堂av色婷婷一区二区三区 | 欧美成年人在线视频 | 在线天堂中文www视软件 | 亚洲乱码久久久 | 手机在线观看国产精品 | 欧美日韩在线观看一区二区三区 | 成人h电影| 国产精品99久久免费黑人 | 色偷偷男人的天堂av | 在线国产中文字幕 | 国产精品欧美久久 | 国产高清视频免费在线观看 | 久久久久久久久久久久久久电影 | 久久久久影视 | 欧美大片在线观看一区 | 在线免费观看黄色 | 三级av在线播放 | 日韩精品中文字幕av | 亚洲另类视频在线观看 | www.xxx.性狂虐| 精品国产一区二区三区久久久久久 | 日韩网站在线观看 | 一级片免费观看视频 | 国产精品久久久久久五月尺 | 超碰人人干人人 | 国产手机在线精品 | 特级黄色片免费看 | 亚洲国产成人精品在线 | 国产 一区二区三区 在线 | 麻豆视频一区二区 | 亚洲成人免费在线观看 | 91视视频在线直接观看在线看网页在线看 | 精品一区精品二区高清 | 在线 国产一区 | 天天色天天射天天操 | 国产精品久久久视频 | 狠狠狠狠干 | 永久中文字幕 | www.com.日本一级 | 9色在线视频 | 一区二区三区精品在线视频 | 国产精品日韩在线 | 午夜av网站 | 日本精品久久久一区二区三区 | 欧美网站黄色 | 五月婷婷激情 | 色多多视频在线 | 国产中文字幕视频在线 | 在线观看国产亚洲 | 深爱激情站 | 久久99热精品这里久久精品 | 99久久久久久国产精品 | 96视频在线 | 亚洲性少妇性猛交wwww乱大交 | 999男人的天堂 | 狠狠色噜噜狠狠狠狠2021天天 | 免费观看一级一片 | 91精品久久久久久久久久入口 | 国产成人精品区 | 99在线视频网站 | 91视频 - x99av| 日本在线视频网址 | 精品国产一区二区三区男人吃奶 | 91系列在线观看 | 免费看精品久久片 | 天天弄天天干 | 久久久国产精品成人免费 | 亚洲 欧美变态 另类 综合 | 99久久婷婷国产综合精品 | 亚洲精品午夜aaa久久久 | 婷婷久久五月 | 99在线看| 国产热re99久久6国产精品 | 免费a网站 | 伊人国产在线观看 | 99在线精品观看 | 中文字幕永久免费 | 最新中文在线视频 | 91精选在线| a√资源在线| 一区二区三区韩国免费中文网站 | 青草视频在线播放 | 亚洲精品免费观看视频 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 久久久69 | 香蕉视频在线免费看 | 亚在线播放中文视频 | 91精选在线 | 91探花系列在线播放 | 国产日韩欧美精品在线观看 | 国产精品免费高清 | 又大又硬又黄又爽视频在线观看 | 久久国产精品99久久人人澡 | 免费日韩av片 | 天天天操天天天干 | 999国内精品永久免费视频 | 亚州精品天堂中文字幕 | 91精品一区国产高清在线gif | 99视频精品| www..com黄色片 | 国产一区二区三区四区在线 | 99久国产 | 国产一区二区在线视频观看 | 人人爽人人爽av | 免费观看的av | 国产精品成人在线 | 免费国产在线精品 | 免费成人短视频 | 黄色av影视| 中文字幕刺激在线 | 成人a v视频 | 粉嫩一区二区三区粉嫩91 | 超碰在线观看99 | 在线黄色毛片 | 一区二区三区动漫 | 午夜丰满寂寞少妇精品 | 国产成人福利片 | 亚洲成人av影片 | av福利在线免费观看 | 久久久久久久久久影视 | 99久久精品电影 | 国产精品www | 天天干 夜夜操 | 中文国产成人精品久久一 | 在线免费观看羞羞视频 | 国产精品观看在线亚洲人成网 | 在线观看视频一区二区三区 | 98精品国产自产在线观看 | 五月婷婷综合久久 | 免费中文字幕视频 | 国产精品一区专区欧美日韩 | 麻豆播放| av网站在线免费观看 | 亚洲国产精品电影 | 91香蕉视频污在线 | 欧美动漫一区二区三区 | 久久国产三级 | 日韩婷婷 | 激情在线网址 | 久久国语露脸国产精品电影 | 91精品国自产拍天天拍 | 久久久久久毛片精品免费不卡 | 久久天堂精品视频 | 日本中文字幕影院 | 日本在线观看一区二区三区 | 国产经典av | 狠狠躁夜夜躁人人爽超碰97香蕉 | 国产日产精品一区二区三区四区的观看方式 | h动漫中文字幕 | 久久国产热 | 亚洲理论影院 | 国产精品入口66mio女同 | 久久都是精品 | av先锋影音少妇 | 国产福利精品在线观看 | 99热这里只有精品在线观看 | 欧美福利网站 | 久章草在线 | 欧美三级高清 | 日日躁天天躁 | 久久成人一区 | 成人精品久久 | 中文字幕av在线不卡 | 狠狠干夜夜 | 午夜精品一区二区三区在线播放 | 操操操人人人 | 99久久99热这里只有精品 | 丁香花中文在线免费观看 | 亚洲免费精品一区二区 | 丰满少妇在线观看 | 人人狠狠综合久久亚洲婷 | 在线免费性生活片 | 精品中文字幕在线 | 中文字幕a∨在线乱码免费看 | 久久精品中文字幕免费mv | 人人爽人人爱 | 国产一区二区三区黄 | 国产精品一区二区久久 | 激情 一区二区 | 欧美狠狠操 | 久草影视在线 | 在线观看国产www | 成人在线视频一区 | 久久视频免费在线 | 最近免费中文视频 | 国产精品18久久久久久vr | 中文字幕丝袜制服 | 久久免费精品国产 | 色综合久久久久综合99 | 国产免费二区 | 日韩成人邪恶影片 | 在线不卡的av | 天天干天天干天天操 | 精品国产乱码一区二区三区在线 | 欧美日韩视频在线播放 | 天天爱天天草 | 国产精品一区专区欧美日韩 | 久久人人精品 | 国产精品美女久久久久久久久久久 | 国产精品美女网站 | 国内精品久久久久影院日本资源 | 国产一级久久 | 国产精品99久久久精品免费观看 | 国产精品一区在线观看 | 欧美一区影院 | 国产精品高清免费在线观看 | 日韩一区视频在线 | 日韩网站视频 | 久久久久亚洲精品男人的天堂 | 999国内精品永久免费视频 | 精品久久一二三区 | 久草视频免费在线播放 | 国产成人av电影在线观看 | 99免费在线观看 | 美女在线观看网站 | 奇米影音四色 | 久久国产精品久久久久 | 久久国产精品99久久久久久丝袜 | 精品久久久久久久久久 | 成 人 黄 色 视频免费播放 | 久久视| 国产二区电影 | 91精品久久久久久久久久久久久 | 在线91精品| 天堂av免费观看 | 超碰人在线 | 黄色av网站在线免费观看 | 超级碰99 | 日韩精品电影在线播放 | 国产无套一区二区三区久久 | 日韩高清一区 | 欧美伦理一区二区三区 | 免费国产在线精品 | 色爽网站 | 日韩欧在线 | 色免费在线 | 深爱激情五月婷婷 | 日韩精品一区二区三区视频播放 | 99精品视频网站 | 夜夜夜夜爽 | 天天射天天搞 | 国产女v资源在线观看 | 亚洲女在线 | 亚洲精品在线观看av | 五月婷在线 | 国产视频在线看 | 丁香婷婷激情国产高清秒播 | 日韩精品久久久久久久电影99爱 | 欧美日韩电影在线播放 | av黄免费看 | 手机av片 | 一区二区三区视频 | 五月花丁香婷婷 | 国产成人l区| 久久久久亚洲精品成人网小说 | 亚洲国产精品激情在线观看 | 狂野欧美激情性xxxx欧美 | 欧美久久久久 | 久热精品国产 | 天天爱天天操天天射 | 色婷婷视频在线 | 国产精品久久久久久久久久久久冷 | 一区二区 不卡 | 天天操操| 日韩在线中文字幕视频 | 国产精品久久久久久久久久 | 在线视频一二区 | 日韩精品视频第一页 | 国产精品久久久久久久久久免费 | 国产精品久久电影网 | 91喷水| 区一区二区三区中文字幕 | 国产精品一区二区你懂的 | 婷婷丁香色 | 91麻豆精品国产自产在线游戏 | 午夜av在线免费 | 久久国产精品精品国产色婷婷 | av激情五月| 欧美色精品天天在线观看视频 | 99精品欧美一区二区蜜桃免费 | 亚洲人成免费网站 | 成人h在线 | 激情欧美一区二区免费视频 | 久草网视频 | 一区精品在线 | 婷婷五月在线视频 | 久久精品国产成人 | 99精品系列 | 国产 视频 久久 | 日韩美女久久 | 日韩精品一区二区三区免费视频观看 | 在线精品在线 | 免费黄a大片 | 九九久久国产 | 天堂av在线网址 | 99999精品视频 | 天天插一插 | 精品国产一区二区三区男人吃奶 | 久久久国产99久久国产一 | 日韩免费看 | 免费观看第二部31集 | 黄在线免费看 | 欧美aa在线| 6699私人影院| 久久久免费观看完整版 | 国产高清免费视频 | 午夜在线观看影院 | 黄色毛片在线观看 | 国产麻豆精品久久一二三 | 国产精品久久久av久久久 | 麻豆91网站 | 99国产精品久久久久老师 | 精品国产成人av | 亚洲经典视频在线观看 | a色视频 | 色香com.| 色老板在线 | 国产精品久久99综合免费观看尤物 | 五月婷婷电影网 | 免费视频久久 | 国产色中涩 | 天天鲁天天干天天射 | 黄色软件在线观看 | 国产精品99精品久久免费 | 精品一区二区免费在线观看 | 精品亚洲成人 | 一区二区三区日韩在线观看 | 91精品视频免费在线观看 | 伊人五月天.com | av中文在线观看 | 在线三级播放 | 免费成人看片 | www黄| 欧美性一级观看 | 99精品视频一区二区 | 96久久| 久久久久久久久电影 | 久久免费黄色网址 | 午夜私人影院 | 一级黄色大片在线观看 | 亚洲精品高清一区二区三区四区 | 黄色在线免费观看网址 | 91九色视频观看 | 激情小说网站亚洲综合网 | 亚洲无人区小视频 | av在线电影网站 | 成人av资源 | 日韩理论在线观看 | 又爽又黄又刺激的视频 | 国产在线观看91 | 国产一线天在线观看 | 日韩av进入 | 色七七亚洲影院 | av免费电影在线观看 | 狠狠狠色丁香综合久久天下网 | 欧美一级xxxx | 波多野结衣在线播放视频 | 免费亚洲黄色 | a级国产片 | 精品免费久久久久久 | 欧美日韩久久不卡 | 欧美日韩视频网站 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 亚洲综合精品视频 | 福利一区视频 | 欧美日韩69 | 国产视频91在线 | 久久精品系列 | av在线直接看| 操夜夜操| a黄在线观看 | 亚洲最大成人网4388xx | 亚洲国产精品500在线观看 | 欧美一区,二区 | 日日夜夜操av | 国内精品免费久久影院 | 国产香蕉久久精品综合网 | 久久躁日日躁aaaaxxxx | 麻豆视频在线免费观看 | 精品美女在线视频 | 91成人在线免费观看 | 韩日精品在线 | 很黄很色很污的网站 | 成人在线观看你懂的 | 狠狠躁夜夜躁人人爽超碰91 | 超碰公开在线 | 精品国产乱码久久久久久1区二区 | 激情av五月婷婷 | 手机在线看片日韩 | 午夜精品久久久久久久久久 | 免费在线国产精品 | 国产精品永久免费 | 国产又粗又猛又爽又黄的视频免费 | 色资源中文字幕 | 99精品在线观看视频 | 丁香九月婷婷综合 | 久久婷婷丁香 | 久久综合久久88 | 日日精品 | 在线观看涩涩 | 久久草精品| 国产一级特黄电影 | 成人欧美一区二区三区黑人麻豆 | 69久久久久久久 | 亚洲aⅴ一区二区三区 | zzijzzij日本成熟少妇 | 欧美福利精品 | 一级免费黄视频 | 99c视频在线| 日韩一区精品 | 99精品国产免费久久 | 成人av午夜| 国产一在线精品一区在线观看 | 亚洲国产精品电影在线观看 | 精品国产一区二区三区在线 | 久久久精品国产免费观看一区二区 | 国产aa精品 | 久久影视一区 | 黄色毛片在线观看 | 亚洲激情婷婷 | 九九视频精品在线 | 日韩性久久 | 国产69精品久久99的直播节目 | 精品久久久久久久久中文字幕 | va视频在线 | 日日夜夜草 | 激情av一区二区 | 成人a毛片 | 国产精品久久久区三区天天噜 | 黄色免费观看视频 | 91av免费观看 | 国产成人久 | 97国产情侣爱久久免费观看 | 国产探花 | 欧美日韩一区二区在线观看 | 天天透天天插 | 中文字幕免费高清在线 | 精品久久久久久一区二区里番 | 欧美最新另类人妖 | 91av中文| 国产专区视频在线观看 | 国产一区二区在线精品 | 91精品国产入口 | 一区二区三区四区五区六区 | 国产精品手机看片 | 国产精品久久久久久久久大全 | 欧美一区二区在线 | 欧美少妇xxx | 国内精品久久久久久久久久久久 | 国产精品美女毛片真酒店 | 成年人免费电影在线观看 | 九九九九热精品免费视频点播观看 | 在线成人高清电影 | 999久久国产精品免费观看网站 | 婷婷久月 | 99色视频| 精品久久久久久亚洲综合网 | 精品9999 | 国产成人一区二区三区在线观看 | 天天视频亚洲 | 国产成人精品午夜在线播放 | 国产精品丝袜 | 国产精品v欧美精品v日韩 | 久久国产一区二区 | 久久久久成人精品 | 黄色免费网站下载 | 欧美韩国日本在线 | 九九久久免费视频 | 国产精品女同一区二区三区久久夜 | 日本福利视频在线 | 天天操天天色天天 | av在线永久免费观看 | 外国av网| 久久人人爽人人爽人人片 | 久久精品小视频 | 在线激情av电影 | 欧美日韩一区二区在线观看 | 在线观看中文字幕av | 精品人人人人 | 日韩网站在线看片你懂的 | 久草在线费播放视频 | 久久免费视频网站 | 欧美一区二区在线免费观看 | 黄网站色欧美视频 | 欧美大荫蒂xxx | 久久99精品一区二区三区三区 | 国产91在| 国产无遮挡又黄又爽在线观看 | 国产99亚洲 | 91网免费看 | 91在线播放视频 | 97超级碰碰碰视频在线观看 | 国产精品视频免费看 | 久久精品男人的天堂 | 久久精品99国产国产 | 狠狠色网| 亚洲人xxx | 伊人射 | 久久精品精品电影网 | 亚洲日本在线视频观看 | 国产一级做a| av黄色影院 | 欧美精品久久久久久久久免 | 人人看97 | 超碰在线官网 | 五月婷婷中文字幕 | 婷婷丁香色综合狠狠色 | 国产69精品久久久久99尤 | 美女视频黄免费的 | 美女网站色免费 | 久草综合视频 | 在线国产片 |