Linux下Android开发环境搭建详细步骤linux安卓开发环境搭建




Linux下Android开发环境搭建详细步骤linux安卓开发环境搭建

2022-07-20 20:31:12 网络知识 官方管理员

1、系统环境

[android@localhost~]$uname-a

Linuxlocalhost.localdomain2.6.32-71.el6.i686#1SMPWedSep101:26:34EDT2010i686i686i386GNU/Linux

[android@localhost~]$lsb_release-a

LSBVersion::core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch

DistributorID:RedHatEnterpriseServer

Description:RedHatEnterpriseLinuxServerrelease6.0(Santiago)

Release:6.0

Codename:Santiago

[android@localhost~]$

2、准备软件

java

eclipse

android-sdk

ADT

这些软件都可以在官网上下载。

3、搭建过程

(1)安装java

[android@localhost~]$rpm-qa|grepjava

eclipse-mylyn-java-3.3.2-4.5.el6.i686

java-1.6.0-openjdk-devel-1.6.0.0-1.21.b17.el6.i686

java-1.6.0-openjdk-1.6.0.0-1.21.b17.el6.i686

tzdata-java-2010l-1.el6.noarch

gcc-java-4.4.4-13.el6.i686

java-1.5.0-gcj-1.5.0.0-29.1.el6.i686

subversion-javahl-1.6.11-2.el6.i686

ooobasis3.3-javafilter-3.3.0-9567.i586

libvirt-java-0.4.5-2.el6.noarch

lpg-java-compat-1.1.0-4.1.el6.noarch

libvirt-java-devel-0.4.5-2.el6.noarch

mysql-connector-java-5.1.12-2.el6.i686

ant-javamail-1.7.1-13.el6.i686

java-1.6.0-openjdk-javadoc-1.6.0.0-1.21.b17.el6.i686

java_cup-0.10k-5.el6.i686

[android@localhost~]$

通过命令查看当前已经安装了java的相关jdk,可以进行下一步。

(2)安装eclipse

从官网上下载的eclipse不需要按装,直接解压即可使用。如:

[android@localhostBaseEnv]$ls

ADT-18.0.0.zip

android-sdk_r18-linux.tgz

Android开发环境搭建(Linux篇).doc

eclipse

eclipse-cpp-indigo-SR2-incubation-linux-gtk.tar.gz

Linux环境搭建.doc

Linux下Android开发环境搭建.doc

[android@localhostBaseEnv]$rm-Reclipse

[android@localhostBaseEnv]$ls

ADT-18.0.0.zip

android-sdk_r18-linux.tgz

Android开发环境搭建(Linux篇).doc

eclipse-cpp-indigo-SR2-incubation-linux-gtk.tar.gz

Linux环境搭建.doc

Linux下Android开发环境搭建.doc

[android@localhostBaseEnv]$tar-zxfeclipse-cpp-indigo-SR2-incubation-linux-gtk.tar.gz

[android@localhostBaseEnv]$ls

ADT-18.0.0.zip

android-sdk_r18-linux.tgz

Android开发环境搭建(Linux篇).doc

eclipse

eclipse-cpp-indigo-SR2-incubation-linux-gtk.tar.gz

Linux环境搭建.doc

Linux下Android开发环境搭建.doc

[android@localhostBaseEnv]$cdeclipse

[android@localhosteclipse]$ls

about_filesconfigurationeclipse.iniicon.xpmp2

about.htmldropinsepl-v10.htmllibcairo-swt.soplugins

artifacts.xmleclipsefeaturesnotice.htmlreadme

[android@localhosteclipse]$ll

总用量540

drwxrwxr-x.2androidandroid40962月1703:06about_files

-rw-rw-r--.1androidandroid189092月821:55about.html

-rw-rw-r--.1androidandroid882462月1703:06artifacts.xml

drwxrwxr-x.5androidandroid40962月1703:06configuration

drwxrwxr-x.2androidandroid40962月1703:06dropins

-rwxr-xr-x.1androidandroid628142月822:16eclipse

-rw-rw-r--.1androidandroid4072月1703:06eclipse.ini

-rw-rw-r--.1androidandroid165362月821:36epl-v10.html

drwxrwxr-x.46androidandroid40962月1703:06features

-rw-rw-r--.1androidandroid90222月821:54icon.xpm

-rwxr-xr-x.1androidandroid2661682月821:54libcairo-swt.so

-rw-rw-r--.1androidandroid89512月821:36notice.html

drwxrwxr-x.5androidandroid40962月1703:05p2

drwxrwxr-x.10androidandroid368642月1703:06plugins

drwxrwxr-x.2androidandroid40962月1703:06readme

[android@localhosteclipse]$./eclipse

启动eclipse之后,eclipse会自动创建并寻找workspace文件夹,可以直接点击ok按钮即可。eclipse的启动过程如下图所示:

Android开发环境,Linux

Android开发环境,Linux

eclipse也可以在gnome桌面下直接双击eclipse可执行文件启动。

(3)安装android-sdk

[android@localhostBaseEnv]$tar-zxfandroid-sdk_r18-linux.tgz

[android@localhostBaseEnv]$ls

ADT-18.0.0.zip

android-sdk-linux

android-sdk_r18-linux.tgz

Android开发环境搭建(Linux篇).doc

eclipse

eclipse-cpp-indigo-SR2-incubation-linux-gtk.tar.gz

Linux环境搭建.doc

Linux下Android开发环境搭建.doc

[android@localhostBaseEnv]$cdandroid-sdk-linux/

[android@localhostandroid-sdk-linux]$ls

add-onsplatformsSDKReadme.txttools

[android@localhostandroid-sdk-linux]$cdtools/

[android@localhosttools]$ll

总用量6772

-rw-rw----.1androidandroid3233月3023:20adb_has_moved.txt

-rwxrwx---.1androidandroid34913月3023:19android

drwxrwx---.2androidandroid40963月3023:19ant

-rwxrwx---.1androidandroid19773月3023:19apkbuilder

drwxrwx---.3androidandroid40963月3023:19apps

-rwxrwx---.1androidandroid31163月3023:19ddms

-rwxrwx---.1androidandroid467243月3023:19dmtracedump

-rwxrwx---.1androidandroid19403月3023:19draw9patch

-rwxrwx---.1androidandroid248283月3023:19emulator

-rwxrwx---.1androidandroid28141283月3023:19emulator-arm

-rwxrwx---.1androidandroid27654283月3023:19emulator-x86

-rwxrwx---.1androidandroid1368603月3023:19etc1tool

-rwxrwx---.1androidandroid32823月3023:19hierarchyviewer

-rwxrwx---.1androidandroid96803月3023:19hprof-conv

drwxrwx---.6androidandroid40963月3023:19lib

-rwxrwx---.1androidandroid20153月3023:19lint

-rwxrwx---.1androidandroid96763月3023:19mksdcard

-rwxrwx---.1androidandroid31693月3023:19monkeyrunner

-rw-rw----.1androidandroid3795873月3023:20NOTICE.txt

drwxrwx---.7androidandroid40963月3023:19proguard

-rw-rw----.1androidandroid663月3023:19source.properties

-rwxrwx---.1androidandroid6138563月3023:19sqlite3

drwxrwx---.2androidandroid40963月3023:19support

-rwxrwx---.1androidandroid30443月3023:19traceview

-rwxrwx---.1androidandroid467843月3023:19zipalign

[android@localhosttools]$./androidupdatesdk

此处即打开了android模拟器的升级更新界面,如下图所示:

接下来的操作主要是对该模拟器中的相关包进行下载升级,需要的时间可能会很长(本人在进行升级时基本上会在晚上保持开机,因为Android系统之间得不兼容性。当然,您如果只是针对某一个Android系统版本,那会快很多。不过在以后也可以追加下载安装的。):

Android开发环境,Linux

Android开发环境,Linux

Android开发环境,Linux

您可以选择Aceeptall:

点击Install按钮之后,您会跳转到下面的界面中,其中,在该对话框的最下面,您会看到当前包的下载速度与进度:

Android开发环境,LinuxAndroidSDKManager有时候也会弹出下面的log对话框,这里面可以看到更加详细的信息(您可以关闭该对话框。如果您下一次确实需要看,您可以点击后色按钮后面的那个按钮,管理器会打开日志对话框):

Android开发环境,Linux

在android-sdk安装成功之后,在该目录下,AndroidSDKManager会创建platform-tools文件夹,该文件夹中包含了您已定会用到的adb等android命令。

下载过程中,SDKMenager会弹出如下图的站点认证信息,可忽略该认证:

Android开发环境,Linux

在下载安装完成后,安卓SDK管理器会弹出下面的对话框:

Android开发环境,Linux

此时,您可以勾选标注为Notinstalled的相关包,点击Install*package可以安装您选择的没有安装的相关包,但此时安装的包大都需要您给出站点认证信息。相关信息截图如下:

Android开发环境,Linux

Android开发环境,Linux

Android开发环境,Linux

至此,AndroidSDKManager安装完毕。

(4)安装ADT插件

首先,您要启动eclipse;

在IDE中点击Help->InstallNewSoftware...打开eclipse的Install对话框,如下图所示:

Android开发环境,Linux

Android开发环境,Linux

点击Add...按钮,打开AddRepository对话框:

在这一步周中,您可一在Location输入框中填入您下载ADT的URL。但此时,为了提高安装速度,可以先将ADT下载到本地,然后点击Archive...按钮:

Android开发环境,Linux

Android开发环境,Linux

这时,需要选择您刚才下载的ADT(记得,一定不要解压):

在这里,直接点击ok就可以了:

Android开发环境,Linux勾选Name中的DeveloperTools,直接点击Next,进行安装:

Android开发环境,Linux

Android开发环境,Linux

Android开发环境,Linux

这时,就需要接受协议条款了,接下来直接点击Finish按钮:

Android开发环境,Linux在安装界面,您可以点击Details>>按钮查看当前的详细信息,此时在Eclipse的IDE界面的右下角也会给出进度提示:

Android开发环境,Linux插件安装过程中,可能会弹出来下面的警告信息,看完消息之后,您会和我一样点击确定按钮的:

Android开发环境,Linux

安装完成后,Eclipse会让您选择是否重启Eclipse来应用您刚刚给IDE带来的新变化,这就因时而异了:

Android开发环境,Linux

重启进入Eclipse之后,一般情况下,会弹出WelcometoAndroidDevelopment的对话框:

Android开发环境,Linux

如果没有弹出该对话框,可以在Window->Perferences中的Android进行必要的设置,

该设置项位于SDKLocation下。

这里需要设置的是TargetLocation,您可一点击Browse...来浏览选择您之前安装的Android-sdk-linux的路径地址:

Android开发环境,Linux点击确定即可:

接下来,就是简单的Next:

Android开发环境,Linux

Android开发环境,Linux

接下来需要选择可安装的包,一般点击AcceptAll:

Android开发环境,Linux

Android开发环境,Linux

这一过程安装完成之后,可以通过Eclipse中的Window->AVDManager打开AndroidVirtualDeviceManager。也可一通过tools下的androidbash文件打开,不过可能稍微有一点困难,应该是不建议的打开方式。

设置创维M6的平板驱动

(请允许这么称呼,只是因为类似与Windows下的驱动效果,如此设置后,既可以打开创维M6的adb使用)

1、使用lsusb命令查看系统的USB设备:

[android@bogon~]$lsusb

Bus002Device005:ID0bb4:0c02HighTechComputerCorp.Dream/ADP1/G1Phone(Debug)

Bus002Device003:ID093a:2510PixartImaging,Inc.OpticalMouse

Bus002Device002:ID8087:0020IntelCorp.IntegratedRateMatchingHub

Bus002Device001:ID1d6b:0002LinuxFoundation2.0roothub

Bus001Device002:ID8087:0020IntelCorp.IntegratedRateMatchingHub

Bus001Device001:ID1d6b:0002LinuxFoundation2.0roothub

[android@bogon~]$

由此可以看出,进入Debug模式下的0bb4是创维M6的ID。

2、切换之android-sdk-linux的tools目录下,更新adb:

[android@bogontools]$./androidupdateadb

adbhasbeenupdated.Youmustrestartadbwiththefollowingcommands

adbkill-server

adbstart-server

[android@bogontools]$

3、尝试查看Android设备:

[android@bogonplatform-tools]$./adbdevices

*daemonnotrunning.startingitnowonport5037*

*daemonstartedsuccessfully*

Listofdevicesattached

????????????nopermissions

[android@bogonplatform-tools]$

可以看出,该命令执行失败,返回的结果,本人不知。

4、加入创维M6的ID到adb_usb.ini文件下(必须拥有root权限,并且该文件存在于隐藏的.android文件夹下):

[android@bogon~]$suroot

密码:

[root@bogonandroid]#ls-al

总用量200

drwx------.34androidandroid40964月1309:10.

drwxr-xr-x.5rootroot40964月1308:57..

drwx------.3androidandroid40964月1309:01.adobe

drwxrwxr-x.3androidandroid40964月1309:18.android

drwxrwxr-x.4androidandroid40964月1309:13BaseEnv

-rw-r--r--.1androidandroid186月222010.bash_logout

-rw-r--r--.1androidandroid1766月222010.bash_profile

-rw-r--r--.1androidandroid1246月222010.bashrc

drwxr-xr-x.3androidandroid40964月1308:58.cache

drwxr-xr-x.6androidandroid40964月1309:13.config

drwx------.3androidandroid40964月1308:58.dbus

-rw-r--r--.1androidandroid5001月242007.emacs

-rw-------.1androidandroid164月1308:58.esd_auth

drwx------.4androidandroid40964月1308:59.gconf

drwx------.2androidandroid40964月1309:09.gconfd

drwxr-xr-x.7androidandroid40964月1309:07.gnome2

drwx------.2androidandroid40964月1308:58.gnome2_private

drwxrwxr-x.3androidandroid40964月1308:58.gnote

drwx------.2androidandroid40964月1308:58.gnupg

drwxrwxr-x.2androidandroid40964月1308:58.gstreamer-0.10

-rw-rw-r--.1androidandroid2004月1308:58.gtk-bookmarks

drwx------.2androidandroid40964月1308:58.gvfs

-rw-------.1androidandroid3104月1308:58.ICEauthority

-rw-r--r--.1androidandroid7944月1308:58.imsettings.log

drwx------.3androidandroid40964月1309:09.kde

-rw-r--r--.1androidandroid1216月292010.kshrc

drwxr-xr-x.3androidandroid40964月1308:58.local

drwx------.3androidandroid40964月1309:01.macromedia

-rw-r--r--.1androidandroid1246月252010.mkshrc

drwxr-xr-x.5androidandroid40964月1308:58.mozilla

drwxr-xr-x.2androidandroid40964月1308:58.nautilus

drwx------.2androidandroid40964月1308:58.pulse

-rw-------.1androidandroid2564月1308:58.pulse-cookie

-rw-------.1androidandroid2184月1309:07.recently-used.xbel

drwxrwxr-x.3androidandroid40964月1308:58.redhat

drwx------.2androidandroid40964月1308:58.ssh

drwx------.3androidandroid40964月1309:10.thumbnails

drwxrwxr-x.3androidandroid40964月1309:10workspace

-rw-------.1androidandroid504月1308:57.xauthoxIGCv

-rw-------.1androidandroid44014月1309:26.xsession-errors

-rw-r--r--.1androidandroid65812月92009.zshrc

drwxr-xr-x.2androidandroid40964月1308:58公共的

drwxr-xr-x.2androidandroid40964月1308:58模板

drwxr-xr-x.2androidandroid40964月1308:58视频

drwxr-xr-x.2androidandroid40964月1308:58图片

drwxr-xr-x.2androidandroid40964月1308:58文档

drwxr-xr-x.2androidandroid40964月1309:13下载

drwxr-xr-x.2androidandroid40964月1308:58音乐

drwxr-xr-x.2androidandroid40964月1308:58桌面

[root@bogonandroid]#cd.android/

[root@bogon.android]#ls

adb_usb.iniavd

[root@bogon.android]#vimadb_usb.ini

[root@bogon.android]#lsusb

Bus002Device008:ID0bb4:0c02HighTechComputerCorp.Dream/ADP1/G1Phone(Debug)

Bus002Device003:ID093a:2510PixartImaging,Inc.OpticalMouse

Bus002Device002:ID8087:0020IntelCorp.IntegratedRateMatchingHub

Bus002Device001:ID1d6b:0002LinuxFoundation2.0roothub

Bus001Device002:ID8087:0020IntelCorp.IntegratedRateMatchingHub

Bus001Device001:ID1d6b:0002LinuxFoundation2.0roothub

[root@bogon.android]#gvimadb_usb.ini

#ANDROID3RDPARTYUSBVENDORIDLIST–DONOTEDIT.

#USE'androidupdateadb'TOGENERATE

#1USBVENDORIDPERLINE.'

0x0bb4#该段的前面的内容为该文件原来保存的内容,只需在最后添加创维M6的ID即可。

5、以root权限创建文件/etc/udev/rules.d/im-android.rules文件,并在其中添加下面红色加粗的文字,其中的含义,您可以猜得懂。记得给该文件赋予可读可执行权限。

[root@bogon.android]#cd..

[root@bogonandroid]#cd..

[root@bogonhome]#gvim/etc/udev/rules.d/imx-android.rules

SUBSYSTEM==usb,SYSFS{idVendor}==0bb4,MODE=0666

[root@bogonhome]#gvim/etc/bash.bashrc

[root@bogonhome]#exit

exit

[android@bogon~]$cdBase\Env/

[android@bogonBaseEnv]$ls

ADT-18.0.0.zipeclipse

android-sdk-linuxeclipse-cpp-indigo-SR2-incubation-linux-gtk.tar.gz

android-sdk_r18-linux.tgz

[android@bogonBaseEnv]$cdandroid-sdk-linux/

[android@bogonandroid-sdk-linux]$ls

add-onsdocsplatformsplatform-toolsSDKReadme.txttemptools

[android@bogonandroid-sdk-linux]$cdplatform-tools/

[android@bogonplatform-tools]$./adbdevices

Listofdevicesattached

????????????nopermissions

[android@bogonplatform-tools]$./adbkill-server

[android@bogonplatform-tools]$./adbstart-server

*daemonnotrunning.startingitnowonport5037*

*daemonstartedsuccessfully*

[android@bogonplatform-tools]$./adbdevices

Listofdevicesattached

????????????nopermissions

[android@bogonplatform-tools]$cd/etc/udev/rules.d

[android@bogonrules.d]$ll

总用量76

-rw-r--r--.1rootroot66276月24201040-hplip.rules

-rw-r--r--.1rootroot2268月18201051-dlm.rules

-rw-r--r--.1rootroot4956月24201056-hpmud_support.rules

-rw-r--r--.1rootroot16528月26201060-fprint-autosuspend.rules

-rw-r--r--.1rootroot10606月29201060-pcmcia.rules

-rw-r--r--.1rootroot4528月13201060-raw.rules

-rw-r--r--.1rootroot2927月17201070-cups-libusb.rules

-rw-r--r--.1rootroot7882月2102:4170-persistent-cd.rules

-rw-r--r--.1rootroot4602月2101:4970-persistent-net.rules

-rw-r--r--.1rootroot19141月13201085-pcscd_ccid.rules

-rw-r--r--.1rootroot3205月15200990-alsa.rules

-rw-r--r--.1rootroot837月28201090-hal.rules

-rw-r--r--.1rootroot3598月18201090-rdma.rules

-rw-r--r--.1rootroot534月19201091-drm-modeset.rules

-rw-r--r--.1rootroot24866月30201097-bluetooth-serial.rules

-rw-r--r--.1rootroot2928月30201098-kexec.rules

-rw-r--r--.1rootroot544月9201099-fuse.rules

-rw-r--r--.1rootroot534月1309:39imx-android.rules

[android@bogonrules.d]$suroot

密码:

[root@bogonrules.d]#chmod+rximx-android.rules

[root@bogonrules.d]#ll

总用量76

-rw-r--r--.1rootroot66276月24201040-hplip.rules

-rw-r--r--.1rootroot2268月18201051-dlm.rules

-rw-r--r--.1rootroot4956月24201056-hpmud_support.rules

-rw-r--r--.1rootroot16528月26201060-fprint-autosuspend.rules

-rw-r--r--.1rootroot10606月29201060-pcmcia.rules

-rw-r--r--.1rootroot4528月13201060-raw.rules

-rw-r--r--.1rootroot2927月17201070-cups-libusb.rules

-rw-r--r--.1rootroot7882月2102:4170-persistent-cd.rules

-rw-r--r--.1rootroot4602月2101:4970-persistent-net.rules

-rw-r--r--.1rootroot19141月13201085-pcscd_ccid.rules

-rw-r--r--.1rootroot3205月15200990-alsa.rules

-rw-r--r--.1rootroot837月28201090-hal.rules

-rw-r--r--.1rootroot3598月18201090-rdma.rules

-rw-r--r--.1rootroot534月19201091-drm-modeset.rules

-rw-r--r--.1rootroot24866月30201097-bluetooth-serial.rules

-rw-r--r--.1rootroot2928月30201098-kexec.rules

-rw-r--r--.1rootroot544月9201099-fuse.rules

-rwxr-xr-x.1rootroot534月1309:39imx-android.rules

[root@bogonrules.d]#

6、启动/etc/init.d/udev-post服务:

[root@bogonrules.d]#/etc/init.d/udevrestart

bash:/etc/init.d/udev:没有那个文件或目录

[root@bogonrules.d]#cd/etc/init.d/

[root@bogoninit.d]#ls|grepudev

udev-post

[root@bogoninit.d]#/etc/init.d/udev-postrestart

用法:/etc/init.d/udev-post{start|stop|reload}

[root@bogoninit.d]#/etc/init.d/udev-postreload

重新激发失败的udev事件[确定]

[root@bogoninit.d]#/etc/init.d/udev-poststart

重新激发失败的udev事件[确定]

[root@bogoninit.d]#cd/home/android/Base\Env/android-sdk-linux/platform-tools/

[root@bogonplatform-tools]#./adbkill-server

[root@bogonplatform-tools]#./adbdevices

*daemonnotrunning.startingitnowonport5037*

*daemonstartedsuccessfully*

Listofdevicesattached

0123456789ABCDEFdevice

[root@bogonplatform-tools]#

[root@bogonplatform-tools]#./adbshell

#pwd

/

#ls

config

cache

udisk

flash

sdcard

acct

mnt

vendor

d

etc

ueventd.rk29board.rc

ueventd.rc

ueventd.goldfish.rc

system

sys

sbin

proc

init_battery.sh

init.rk29board.rc

init.rc

init.goldfish.rc

init

default.prop

data

root

dev

#exit

[root@bogonplatform-tools]#

7、为了能够向其他的bash命令一样运行adb,即不许要在前面添加./,您需要修改相应的环境变量配置文件,您可以如下进行您的操作:

[root@bogonplatform-tools]#vim/etc/profile

exportAndroid_HOME=/home/android/Base\Env/android-sdk-linux

exportPATH=$PATH:$Android_HOME/platform-tools

[root@bogonplatform-tools]#source/etc/profile

[root@bogonplatform-tools]#exit

[android@bogon~]$

[android@bogon~]$echo$PATH

/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/android/bin

为了让您设置的环境变量剩下,可以对该文件source一下,如下:

[android@bogon~]$source/etc/profile

[android@bogon~]$echo$PATH

/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/android/bin:/home/android/BaseEnv/android-sdk-linux/platform-tools

[android@bogon~]$adbdevices

Listofdevicesattached

0123456789ABCDEFdevice

[android@bogon~]$adbshell

#pwd

/

#./data/grip/ids

1.wlan0

(nodescriptionavailable)

2.any

(Pseudo-devicethatcapturesonallinterfaces)

3.lo

(nodescriptionavailable)

inputainterface:(1-3)1

dev:wlan0

----ethernetprotocol(phydicallayer)-----

MACsourceAddress:

78:d6:f0:25:af:a9

MACdestinationAddress:

00:26:9e:6f:cc:e3

protocol:0806

thisisaARPprotocol

------ARPProtocol-------

----ethernetprotocol(phydicallayer)-----

MACsourceAddress:

00:26:9e:6f:cc:e3

MACdestinationAddress:

78:d6:f0:25:af:a9

protocol:0806

thisisaARPprotocol

------ARPProtocol-------

^C

#[android@bogon~]$

[android@bogon~]$


发表评论:

最近发表
网站分类
标签列表