精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Eclipse插件終極攻略:安裝實例

開發(fā) 后端
本文為Eclipse插件開發(fā)基礎(chǔ)教程:終極攻略的第二部分,將詳細(xì)介紹Eclipse插件的安裝實例。

本文為日文文獻(xiàn)《Eclipse 3.4 対応 Eclipse 3.4 プラグイン開発 徹底攻略》第二部分的譯文,在前文中給各位午飯奉獻(xiàn)了《Eclipse插件***攻略:基本概念介紹》,在這個部分里我們將講一下“Eclipse插件開發(fā)安裝實例”。

51CTO推薦專題:Eclipse平臺應(yīng)用與開發(fā)詳解

1.生成插件工程

通過選擇[文件]->[新建]->[工程...]啟動[新工程(New Project)]向?qū)АT诓寮_發(fā)的時候我們就不能選擇通常的java工程了,要選擇新建一個插件工程。

選擇[插件工程(Plug-in Project)]后點擊[下一步(Next)](圖2-1)。下一步,輸入一個適當(dāng)?shù)捻椖棵?圖2-2)。習(xí)慣上項目名和插件的ID是相同的。插件ID和java包的命名方式相同,必須一個世界范圍***的名稱。在這里用cn.sf.amateras.sample作為項目名稱(=插件ID)。點擊[下一步(Next)]。

生成插件工程 
圖2-1 生成插件工程

輸入插件信息 
圖2-2 輸入插件信息

輸入[插件ID]、[插件版本]、[插件屬性(插件作者)](圖2-3)等信息。[插件ID]會被自動設(shè)成之前輸入的[工程名]。沒有其他特別的設(shè)定的話繼續(xù)點擊[下一步(Next)]。

輸入生成工程必要的信息 
圖2-3 輸入生成工程必要的信息

模板選擇 
圖2-4 模板選擇

輸入模板信息 
圖2-5 輸入模板信息

根據(jù)選擇的模板生成的插件在(圖2-5)的畫面可以修改一些信息。如果沒有特別需要設(shè)定的地方點擊[完成(Finish)],生成工程。

PDE透視圖

插件工程生成后,就會切換到PDE(插件開發(fā))透視圖。工程此時根據(jù)選擇的[Hello,World]模板生成了插件的源代碼,并且打開了manifest編輯器。

 
圖2-6 PDE(插件開發(fā))透視圖

#p#

2. 插件的動作

接下來我們看一下插件的動作。manifest編輯器的[概要]頁面右側(cè)[啟動Eclipse應(yīng)用(Luanch an Eclipse application)](圖2-7)。點擊后,會啟用一個新的Eclipse實例。這個新的實例被稱為[運行時工作臺]。運行工作臺可以以嵌入當(dāng)前正在開發(fā)的插件的狀態(tài)啟動,以使開發(fā)者可以對插件的動作進(jìn)行確認(rèn)。

啟動運行時工作臺 
圖2-7 啟動運行時工作臺

啟動的運行時工作臺,會在菜單欄上增加一個新的菜單項。這個菜單項就是插件的代碼追加上去的。在工具欄上也增加了一個相應(yīng)的按鈕。

工具欄上的按鈕和菜單項目效果相同,都會出現(xiàn)一個[Hello,Eclipse World]的對話框。

Eclipse版的Hello World就完成了。確認(rèn)完這些動作后,就可以關(guān)閉當(dāng)前的運行時工作臺了。

示例中新增的菜單項和工具欄按鈕以及相應(yīng)的動作 
圖2-8 示例中新增的菜單項和工具欄按鈕以及相應(yīng)的動作

MANIFEST.MF和plugin.xml

一個插件包含MANIFEST.MF和plugin.xml兩個配置文件。MANIFEST.MF是OSGi的handler配置文件,記錄了插件ID、名稱、作者、和其他插件的依賴關(guān)系等。plugin.xml記錄了插件的擴(kuò)展和擴(kuò)展點的定義等信息。

Eclipse3.1以前由于還沒有采用OSGi技術(shù),插件的所有信息都記錄在plugin.xml里。所以應(yīng)用在Eclipse3.1以前版本的插件如果要應(yīng)用于Eclipse3.1和以后版本時要注意遵守OSGi的配置文件定義規(guī)范。

#p#

3. PDE的功能

PDE(插件開發(fā)環(huán)境·Plugin Development Enviromment)提供了插件開發(fā)的各種功能。因為插件的開發(fā)使用java語言,所以也會使用到j(luò)ava編碼工具JDT。

Manifest編輯器

PDE提供的功能中最重要的就是Manifest編輯器。編輯器可以為插件的兩個配置文件提供圖形化的編輯功能。

編輯器的配置項目非常多,可以通過編輯器下面的tab頁切換設(shè)定畫面。

Manifest編輯器 
圖2-9 Manifest編輯器

表1 Manifest編輯器各tab頁

頁面 說明
Overview 可以設(shè)定插件的概要信息。生成用于發(fā)布的文檔以及啟動運行時工作臺。
Dependencies 設(shè)定插件間的依賴關(guān)系。
Runtime 可以設(shè)置導(dǎo)出包和ClassPath。
Extensions 管理當(dāng)前插件對擴(kuò)展點的擴(kuò)展。
Extension Points 管理當(dāng)前插件的擴(kuò)展點。
Build 生成工程時的各種設(shè)定。
MANIFEST.MF 顯示MANIFEST.MF的源代碼
plugin.xml 顯示plugin.xml的源代碼
build.properties 顯示build.properties的源代碼

在Overview以外的tab頁上部會顯示一些快捷鍵按鈕,使用這些按鈕也可以進(jìn)行啟動運行時工作臺,導(dǎo)出等操作。

 
圖2-10 編輯器上部

下面介紹一下PDE題供的幾種視圖。在[Window]->[Show View]中可以找到?jīng)]有被顯示的視圖。

[插件(Plug-ins)]視圖

所有的插件列表,包含當(dāng)前工作區(qū)內(nèi)正在開發(fā)的插件。打開插件節(jié)點可以顯示插件下包含的資源,但是以jar包提供出來的插件就顯示不出來了。

在插件節(jié)點上點擊右鍵選擇[打開依賴關(guān)系(Open Dependencies)]可以打開后面要介紹的[依賴關(guān)系]視圖,表現(xiàn)插件間的依賴關(guān)系。右鍵菜單中也可以把選中的插件作為一個工程引入到當(dāng)前工作區(qū)內(nèi)。

[依賴關(guān)系(Plug-in Dependencies)]視圖

表現(xiàn)了插件間的依賴關(guān)系。可以分別表示當(dāng)前插件依賴的插件和依賴當(dāng)前插件的插件。

[插件注冊(Plug-in Registry)]視圖

當(dāng)前工作臺加載的所有插件列表。打開插件節(jié)點,顯示插件提供的擴(kuò)展和擴(kuò)展點、依賴關(guān)系等。

[錯誤Log(Error Log)]視圖

錯誤Log視圖雖然不是PDE提供的功能,但是在插件開發(fā)的時候非常有用。它可以表現(xiàn)當(dāng)前工作臺內(nèi)發(fā)生的錯誤,并且在錯誤上雙擊既可以導(dǎo)向到錯誤發(fā)生的地方。

Plugin-in Selection Spy

同時按下alt+shift+F1

Plugin-in Selection Spy是從Eclipse3.4開始加入的新功能,能夠顯示當(dāng)前焦點所在的編輯器、視圖、向?qū)Аυ捒虻鹊膬?nèi)部信息。把已有的插件作為參考,進(jìn)行插件開發(fā),使用這個功能是再合適不過了。

#p#

4. 解讀示例插件的代碼

讓我們回到插件工程來,看一看插件工程生成的代碼。首先看一下plugin.xml的代碼。

代碼2-1 plugin.xml

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <?eclipse version="3.4"?> 
  3. <plugin> 
  4.    <extension 
  5.          point="org.eclipse.ui.actionSets"> ①  
  6.       <actionSet 
  7.             label="Sample Action Set" 
  8.             visible="true" 
  9.             id="cn.sf.amateras.sample.actionSet"> 
  10.          <menu 
  11.                label="Sample &Menu" 
  12.                id="sampleMenu"> 
  13.             <separator 
  14.                   name="sampleGroup"> 
  15.             </separator> 
  16.          </menu> 
  17.          <action 
  18.                label="&Sample Action" 
  19.                icon="icons/sample.gif" 
  20.                class="cn.sf.amateras.sample.actions.SampleAction"   
  21.                tooltip="Hello, Eclipse world" 
  22.                menubarPath="sampleMenu/sampleGroup" 
  23.                toolbarPath="sampleGroup" 
  24.                id="cn.sf.amateras.sample.actions.SampleAction"> 
  25.          </action> 
  26.       </actionSet> 
  27.    </extension> 
  28. </plugin> 

為了在菜單欄增加一個項目,文件中使用了extension元素。①的id指定了擴(kuò)展點的名稱org.eclipse.ui.actionSets。extension里的內(nèi)容根據(jù)擴(kuò)展點而不同。示例插件中包含了actionSet、menu、action等元素。

②中的class屬性指定了cn.sf.amateras.sample.actions.SampleAction類作為響應(yīng)菜單或者工具欄按鈕的action類。

代碼2-2 SampleAction.java

  1. package cn.sf.amateras.sample.actions;  
  2.    
  3. import org.eclipse.jface.action.IAction;  
  4. import org.eclipse.jface.viewers.ISelection;  
  5. import org.eclipse.ui.IWorkbenchWindow;  
  6. import org.eclipse.ui.IWorkbenchWindowActionDelegate;  
  7. import org.eclipse.jface.dialogs.MessageDialog;  
  8.    
  9. /**  
  10.  * Our sample action implements workbench action delegate.  
  11.  * The action proxy will be created by the workbench and  
  12.  * shown in the UI. When the user tries to use the action,  
  13.  * this delegate will be created and execution will be  
  14.  * delegated to it.  
  15.  * @see IWorkbenchWindowActionDelegate  
  16.  */  
  17. public class SampleAction implements IWorkbenchWindowActionDelegate {  
  18.     private IWorkbenchWindow window;  
  19.     /**  
  20.      * The constructor.  
  21.      */  
  22.     public SampleAction() {  
  23.     }  
  24.    
  25.     /**  
  26.      * The action has been activated. The argument of the  
  27.      * method represents the 'real' action sitting  
  28.      * in the workbench UI.  
  29.      * @see IWorkbenchWindowActionDelegate#run  
  30.      */  
  31.     public void run(IAction action) {   //......①  
  32.         MessageDialog.openInformation(  
  33.             window.getShell(),  
  34.             "Sample",  
  35.             "Hello, Eclipse world");  
  36.     }  
  37.    
  38.     /**  
  39.      * Selection in the workbench has been changed. We  
  40.      * can change the state of the 'real' action here  
  41.      * if we want, but this can only happen after  
  42.      * the delegate has been created.  
  43.      * @see IWorkbenchWindowActionDelegate#selectionChanged  
  44.      */  
  45.     public void selectionChanged(IAction action, ISelection selection) {  
  46.     }  
  47.    
  48.     /**  
  49.      * We can use this method to dispose of any system  
  50.      * resources we previously allocated.  
  51.      * @see IWorkbenchWindowActionDelegate#dispose  
  52.      */  
  53.     public void dispose() {  
  54.     }  
  55.    
  56.     /**  
  57.      * We will cache window object in order to  
  58.      * be able to provide parent shell for the message dialog.  
  59.      * @see IWorkbenchWindowActionDelegate#init  
  60.      */  
  61.     public void init(IWorkbenchWindow window) {  
  62.         this.window = window;  
  63.     }  
  64. }  
  65.  

①run()方法內(nèi)記錄了action執(zhí)行時的處理。利用MessageDialog.openInformation方法打開了一個對話框。

咱們再看看生成的另外一個類--Activator類。這個類對插件的生命周期進(jìn)行了管理,被稱為插件類。

代碼2-3 Activator.java

  1. package cn.sf.amateras.sample;  
  2.    
  3. import org.eclipse.jface.resource.ImageDescriptor;  
  4. import org.eclipse.ui.plugin.AbstractUIPlugin;  //....①  
  5. import org.osgi.framework.BundleContext;  
  6.    
  7. /**  
  8.  * The activator class controls the plug-in life cycle  
  9.  */  
  10. public class Activator extends AbstractUIPlugin {  
  11.    
  12.     // The plug-in ID  
  13.     public static final String PLUGIN_ID = "cn.sf.amateras.sample"; //$NON-NLS-1$  
  14.    
  15.     // The shared instance  
  16.     private static Activator plugin;  
  17.        
  18.     /**  
  19.      * The constructor  
  20.      */  
  21.     public Activator() {  
  22.     }  
  23.    
  24.     /*  
  25.      * (non-Javadoc)  
  26.      * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)  
  27.      */  
  28.     public void start(BundleContext context) throws Exception {//....③  
  29.         super.start(context);  
  30.         plugin = this;  
  31.     }  
  32.    
  33.     /*  
  34.      * (non-Javadoc)  
  35.      * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)  
  36.      */  
  37.     public void stop(BundleContext context) throws Exception {//....④  
  38.         plugin = null;  
  39.         super.stop(context);  
  40.     }  
  41.    
  42.     /**  
  43.      * Returns the shared instance  
  44.      *  
  45.      * @return the shared instance  
  46.      */  
  47.     public static Activator getDefault() {//....②  
  48.         return plugin;  
  49.     }  
  50.    
  51.     /**  
  52.      * Returns an image descriptor for the image file at the given  
  53.      * plug-in relative path  
  54.      *  
  55.      * @param path the path  
  56.      * @return the image descriptor  
  57.      */  
  58.     public static ImageDescriptor getImageDescriptor(String path) {  
  59.         return imageDescriptorFromPlugin(PLUGIN_ID, path);  
  60.     }  
  61. }  
  62.  

示例中的插件類繼承自AbstractUIPlugin(①)。如果沒有UI的插件繼承AbstractUIPlugin的父類Plugin就可以了。

插件類的方法如下表所示:

getDefault() 取得插件類的實例的方法。插件類是單例的,所以這個方法作為一個靜態(tài)方法提供。
start() 插件開始時的處理。
stop() 插件停止時的處理。
getLog() log輸出時取得ILog用的方法。
getImageRegistry() 取得管理插件內(nèi)圖像的ImageRegistry類。
getPerferenceStore() 取得保存插件設(shè)定的IPerferenceStore類。
getDialogSettings() 取得保存對話框設(shè)定的IDialogSettings類。
getWorkbench() 取得IWorkbench的實例。

以上就是根據(jù)[Hello World]模板生成的插件的代碼講解,在PDE中為我們準(zhǔn)備了很多的模板,大家可以都試試看。

感謝大家關(guān)注51CTO《Eclipse插件開發(fā)基礎(chǔ)教程:***攻略》。如果您對Eclipse有什么新的使用心得可以發(fā)Email:zhousn@51cto.com,51CTO將與您一起分享!

【編輯推薦】

  1. Eclipse插件***攻略:測試插件
  2. Eclipse插件***攻略:基本概念介紹
  3. Eclipse插件大全 挑選最牛的TOP30
  4. Eclipse插件的安裝方法三則
  5. Eclipse插件開發(fā)中實現(xiàn)刷新和重編譯
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2010-08-17 13:41:46

Eclipse插件

2010-08-16 16:23:00

Eclipse插件

2011-03-10 10:32:45

2009-06-05 14:36:28

Eclipse插件安裝Eclipse教程

2009-06-04 20:45:11

Eclipse插件安裝Eclipse插件使用

2009-06-10 16:41:51

Links安裝Ecli

2009-09-17 09:44:31

Flex for ec

2023-06-12 17:54:50

2011-12-28 10:26:56

Javaeclipse

2010-08-02 17:04:43

Flex for ec

2009-09-29 10:01:59

Eclipse插件安裝

2010-05-31 09:59:15

Eclipse安裝SV

2009-09-20 16:41:16

CCIE

2010-05-17 09:19:03

Subversion

2010-06-12 14:19:00

Eclipse UML

2009-06-01 16:27:59

eclipse cdteclipse cdtc++

2010-06-09 11:05:52

Eclipse UML

2009-06-04 20:26:45

2009-08-07 10:00:00

在Eclipse中安裝

2013-07-03 17:41:10

eclipse
點贊
收藏

51CTO技術(shù)棧公眾號

亚洲精品无吗| 日韩影视在线| 久久国产欧美日韩精品| 久久天天躁狠狠躁老女人| 777米奇影视第四色| 国产视频第一区| 精品亚洲porn| 国产做受高潮69| 亚洲精品国产精品国自产网站| 欧美黄色a视频| 亚洲一级二级三级| 日本不卡二区| www黄色网址| 视频一区视频二区中文| 超碰97人人做人人爱少妇| 91玉足脚交白嫩脚丫| 欧美一区二区三区婷婷| 亚洲不卡av一区二区三区| 亚洲7777| 视频一区二区三区在线看免费看| 久久电影网电视剧免费观看| 韩日欧美一区二区| 国精品人伦一区二区三区蜜桃| 国内视频在线精品| 欧美日韩视频第一区| 久久国产精品网| 嫩草在线视频| 久久久久久久久久看片| 国产精品果冻传媒潘| 自拍偷拍第八页| 野花国产精品入口| 不卡av在线播放| 一级黄色片网址| 精品三级在线观看视频| 91精品国产91久久综合桃花| 成人黄色片视频| heyzo高清国产精品| 中文字幕亚洲精品在线观看| 日韩福利二区| 调教驯服丰满美艳麻麻在线视频| 青青草国产精品视频| 国产婷婷色一区二区在线观看 | 欧美高清hd18日本| 国产午夜伦鲁鲁| 调教一区二区| 久久久久久黄| 中文字幕精品国产| 亚洲午夜久久久久久久久红桃| 激情欧美一区二区三区黑长吊| 黄色精品一区二区| 热久久最新地址| gogogogo高清视频在线| 国产精品久久久久久亚洲伦| 日本一区二区三区www| 每日更新av在线播放| 99这里只有久久精品视频| 91中文字精品一区二区| 国产精品高潮呻吟av| 久久精品国产精品亚洲综合| 高清在线视频日韩欧美| 午夜爱爱毛片xxxx视频免费看| 国产一区二区电影在线观看| 亚洲天堂男人的天堂| 免费网站在线高清观看| 成人动漫免费在线观看| 亚洲第一偷拍| 欧美日韩国产一级二级| 欧美午夜小视频| 日韩欧美一中文字暮专区| 精品久久中文字幕| 日韩黄色片视频| 美女100%一区| 欧美日韩精品一区二区三区四区| 亚洲精品性视频| 亚洲精品一区二区在线播放∴| 欧美福利视频导航| 人妻巨大乳一二三区| 伊人久久亚洲| 亚洲国产精品热久久| 中文字幕丰满孑伦无码专区| 国产欧美日韩影院| 色偷偷噜噜噜亚洲男人| 印度午夜性春猛xxx交| 国产精品观看| 日韩免费观看网站| 在线观看免费中文字幕| 国产一区二区三区黄视频| 国产精品乱子乱xxxx| 欧美成熟毛茸茸| 国产精品久久三| www.欧美黄色| 成人黄色免费短视频| 欧美精品黑人性xxxx| 在线播放av网址| 国产成人三级| 大胆欧美人体视频| 国产精品人人人人| 美日韩一级片在线观看| 国产精品一区二区三区精品| 国内三级在线观看| 亚洲精品国产精品乱码不99| 亚洲熟女乱色一区二区三区| 外国成人毛片| 日韩成人av在线播放| 日日操免费视频| 亚洲国产精品一区| 国产欧美精品日韩精品| 五月婷婷六月激情| 中文字幕亚洲精品在线观看| 日本福利视频在线| 性欧美video另类hd尤物| 精品处破学生在线二十三| 四季av中文字幕| 一本久道综合久久精品| 91精品免费视频| 欧美精品久久久久久久久久丰满| 亚洲三级在线免费观看| 日本午夜激情视频| 激情久久免费视频| 伊人久久综合97精品| 日韩精品在线不卡| 国产精品1区2区3区在线观看| 欧美一区二区视频17c| 狂野欧美性猛交xxxxx视频| 欧美日韩一卡二卡三卡| 制服丝袜第二页| 欧美区国产区| 91麻豆国产语对白在线观看| 国产对白叫床清晰在线播放| 精品久久久久久电影| 又大又长粗又爽又黄少妇视频| 欧美久久综合网| 日韩av大片在线| 免费观看毛片网站| 亚洲久草在线视频| 激情 小说 亚洲 图片: 伦| 亚洲日产av中文字幕| 久久久久久久久久av| 国内精品久久久久久久久久久| 国产精品大尺度| 亚洲五月天综合| 激情五月色综合国产精品| 欧美亚洲午夜视频在线观看| 丰满少妇一级片| 亚洲综合一二区| 日本成人在线免费| 欧美精品97| 99久久伊人精品影院| 羞羞视频在线免费国产| 正在播放亚洲一区| 国产午夜手机精彩视频| 国内精品视频一区二区三区八戒| 国产99久久精品一区二区永久免费 | 91精品国产综合久久香蕉麻豆 | 亚洲精品国产第一综合99久久| 国产精品久久a| 欧美日韩老妇| 国产色综合天天综合网| 麻豆传媒视频在线| 欧美一区二视频| 侵犯稚嫩小箩莉h文系列小说| 麻豆国产欧美一区二区三区| 亚洲巨乳在线观看| 欧洲精品久久久久毛片完整版| 久久精品91久久久久久再现| 亚洲中文一区二区三区| 国产精品国产三级国产专播品爱网| 9l视频白拍9色9l视频| 欧美大片aaaa| 97激碰免费视频| 欧洲免费在线视频| 国产日韩欧美一区| 日韩一区二区电影| 极品魔鬼身材女神啪啪精品| 日本欧美韩国一区三区| 亚洲欧美影院| 免费精品一区| 97人人做人人爱| 欧美婷婷久久五月精品三区| 欧美吞精做爰啪啪高潮| www.日本高清| 日本亚洲三级在线| 欧美美女黄色网| 欧美a大片欧美片| 国产精品无码专区在线观看| 天堂av中文在线| 亚洲美女自拍视频| 亚洲视频在线观看一区二区| 一区二区三区四区亚洲| 日韩人妻无码一区二区三区| 美国欧美日韩国产在线播放| 人人妻人人澡人人爽欧美一区| 一本色道久久综合狠狠躁的番外| 国产精品自拍小视频| 国产精品一区hongkong| 亚洲欧美日本另类| 国产特级黄色片| 一本久久a久久精品亚洲| 久久爱一区二区| 91免费在线视频观看| 一级黄色在线播放| 亚洲久色影视| 老司机av福利| 亚洲色图美女| 不卡一卡2卡3卡4卡精品在| 国产精品高清乱码在线观看| 欧美激情亚洲另类| av网站在线免费观看| 亚洲第一页在线| 国产又粗又猛又爽又黄91| 岛国av午夜精品| 黑人巨大精品一区二区在线| 久久久亚洲综合| 黑森林av导航| 国产在线国偷精品免费看| 免费午夜视频在线观看| 欧美午夜不卡影院在线观看完整版免费| 欧美日韩在线高清| 豆花视频一区二区| 亚洲一区二区免费| 视频精品导航| 热久久免费视频精品| jizz一区二区三区| 久久成人一区二区| 五月天婷婷在线视频| 亚洲欧洲国产伦综合| 日韩一级免费毛片| 日韩午夜激情电影| 一级黄色片免费看| 欧美专区日韩专区| 日日摸天天添天天添破| 亚洲成人免费在线| 激情视频在线播放| 亚洲精品一二三| 91麻豆免费视频网站| 中文字幕亚洲欧美在线不卡| 亚洲图片第一页| 国产亚洲欧美在线| 苍井空张开腿实干12次| 国产精品一卡二卡在线观看| 老太脱裤子让老头玩xxxxx| 欧美日韩 国产精品| 神马午夜伦理影院| 亚洲成人日韩| 蜜臀av性久久久久蜜臀av| 久久人体视频| 在线码字幕一区| 国产精品久久久久久麻豆一区软件 | 国产成人精品电影| 色老太综合网| 国产精品福利观看| 成人四虎影院| 国产精品一久久香蕉国产线看观看| 台湾成人免费视频| 国产精品一区久久| 岛国一区二区| 成人黄色大片在线免费观看| 欧美资源一区| 日本欧美视频| 在线观看免费黄色片| 欧美1区2区| 国产a级片网站| 99日韩精品| 国产无套粉嫩白浆内谢的出处| 日本伊人精品一区二区三区观看方式 | 亚洲欧美va天堂人熟伦 | 日韩电影免费观看在线观看| 亚洲欧美一区二区三| 亚洲欧洲自拍偷拍| 午夜老司机在线观看| 久久亚洲国产精品成人av秋霞| 日韩欧美一区二区一幕| 亚洲精品国产精品乱码不99| 日韩精品视频播放| 色天使久久综合网天天| 又骚又黄的视频| 日韩一区二区视频| 天堂av2024| 狠狠色狠狠色综合日日五| 男人晚上看的视频| 亚洲一区二区三区视频在线| 国产香蕉视频在线| 91成人在线免费观看| 国产伦精品一区二区三区视频痴汉| 日韩三级在线观看| 神马久久久久久久| 欧美日韩午夜在线| 亚洲欧美另类一区| 亚洲日本成人女熟在线观看| 欧洲美女少妇精品| 午夜精品99久久免费| 婷婷激情四射五月天| 久久国产精品99久久久久久老狼| 日日摸日日碰夜夜爽av| 蜜桃av一区二区| 午夜激情视频网| 国产不卡在线视频| 成人午夜剧场视频网站| 久久精品免费在线观看| 一级片手机在线观看| 亚洲欧美日韩国产中文在线| 亚洲精品午夜国产va久久成人| 欧美日韩一区视频| 日本黄色免费视频| 亚洲国产成人精品女人久久久| 成人精品一区二区三区免费| 欧美成人中文字幕| 97精品国产99久久久久久免费| 国产欧美日韩一区二区三区| 国产韩国精品一区二区三区| 日韩伦理在线免费观看| 美国毛片一区二区| av污在线观看| 91色在线porny| 国产在线观看你懂的| 欧美性猛交xxxx免费看| 国产黄a三级三级三级| 伊人久久免费视频| 亚洲性色av| 国产精品伊人日日| 亚洲一本二本| 天天干天天玩天天操| 久久久久国产精品麻豆ai换脸| 久久精品视频久久| 91精品国产入口在线| 337p日本欧洲亚洲大胆鲁鲁| 欧美综合激情网| 欧美三级电影在线| 国产日本在线播放| 国产一区不卡精品| 亚洲欧美卡通动漫| 欧洲视频一区二区| 久草在线网址| 欧美综合激情网| 综合伊思人在钱三区| 国产色一区二区三区| 国产成a人无v码亚洲福利| 精品国产乱码久久久久久鸭王1| 欧美日韩成人在线| av在线电影网| 国产精品网站大全| 日韩国产一区二区三区| 免费黄色一级网站| 欧美激情中文字幕一区二区| 91黑人精品一区二区三区| 国产视频丨精品|在线观看| 理论片午夜视频在线观看| 精品午夜一区二区三区| 国产欧美二区| 亚洲 小说 欧美 激情 另类| 色域天天综合网| 国产精品一级伦理| 国产精品九九久久久久久久| 欧洲激情视频| 国产免费中文字幕| 亚洲女人小视频在线观看| av男人天堂网| 欧美激情二区三区| 国产毛片久久久| 日本精品免费在线观看| 国产欧美一区二区精品性色超碰 | 国产91足控脚交在线观看| 不卡一区二区三区四区五区| 亚洲精品一二| 白丝女仆被免费网站| 欧美在线视频不卡| 欧美成年黄网站色视频| 99久久99久久| 亚洲在线观看| 2019男人天堂| 91麻豆精品国产91久久久久久| 黄色精品免费看| 国产精品成人观看视频免费| 亚洲欧美日韩国产| 中文字幕第24页| 日韩亚洲欧美在线观看| 国产免费视频在线| 91丨九色丨国产在线| 亚洲大胆在线| 欧美深性狂猛ⅹxxx深喉 | 国产精品日韩精品欧美在线| 一本色道久久综合熟妇| 欧美日韩第一视频| 一本色道久久综合亚洲精品酒店 | 国产精品久久久久久久久搜平片| 国产欧美久久久| 91精品国产一区| 欧洲激情综合| 国产精品成人免费一区久久羞羞| 欧美性jizz18性欧美| 色欧美激情视频在线| 国产精选在线观看91| 日本不卡视频一二三区| 在线观看成人毛片| 亚洲性生活视频在线观看| 视频二区欧美| 亚洲一区在线不卡| 亚洲一区二区视频在线观看| seseavlu视频在线| 国产精品日韩高清|