diff --git a/src/main.cpp b/src/main.cpp
index e9f4aa0..73731b7 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -4,12 +4,19 @@
 #include <DLog>
 #include <DPlatformWindowHandle>
 #include <DApplicationSettings>
-
+#include <DAboutDialog>
+#include <QLabel>
+#include <DWidgetUtil>
 DCORE_USE_NAMESPACE
 DWIDGET_USE_NAMESPACE
 
 int main(int argc, char *argv[])
 {
+    // Get build time
+    static const QString version = "Version 3.5.1";
+    static const QDate buildDate = QLocale( QLocale::English ).toDate( QString(__DATE__).replace("  ", " 0"), "MMM dd yyyy");
+    static const QTime buildTime = QTime::fromString(__TIME__, "hh:mm:ss");
+
     //设置桌面环境环境变量
     if (!QString(qgetenv("XDG_CURRENT_DESKTOP")).toLower().startsWith("deepin")) {
         setenv("XDG_CURRENT_DESKTOP", "Deepin", 1);
@@ -19,6 +26,9 @@ int main(int argc, char *argv[])
     DApplication::loadDXcbPlugin(); // 加载 DXCB 插件
 #endif
 
+    // 浏览器开启 GPU 支持
+    qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--ignore-gpu-blocklist --enable-gpu-rasterization --enable-native-gpu-memory-buffers --enable-accelerated-video-decode");
+
     //初始化日志模块 (默认日志位置 ~/.cache/deepin/spark-store)
     DLogManager::registerConsoleAppender();
     DLogManager::registerFileAppender();
@@ -34,12 +44,50 @@ int main(int argc, char *argv[])
 
     a.loadTranslator(); // 载入翻译
 
+    QSettings readConfig(QDir::homePath() + "/.config/spark-store/config.ini", QSettings::IniFormat);
+
+    if (readConfig.value("build/version").toString() != version){
+        qDebug() << "Spark Store has been updated!";
+        QSettings *setConfig = new QSettings(QDir::homePath() + "/.config/spark-store/config.ini", QSettings::IniFormat);
+        setConfig->setValue("build/version", version);
+        setConfig->setValue("build/time", buildDate.toString("yyyy.MM.dd")+"-"+buildTime.toString());
+        setConfig->deleteLater();
+    }
+
+    //Customized DAboutDialog
+
+     DAboutDialog dialog;
+      a.setAboutDialog(&dialog);
+      dialog.setLicense(QObject::tr("We publish this program under GPL V3"));
+      dialog.setVersion(DApplication::buildVersion(readConfig.value("build/version").toString()+"-"+readConfig.value("build/time").toString()));
+      dialog.setProductIcon(QIcon::fromTheme("spark-store"));  // 设置Logo
+      dialog.setProductName(QLabel::tr("Spark Store"));
+      dialog.setDescription(
+                  QObject::tr(
+                      "<span style=' font-size:10pt;font-weight:60;'>An appstore powered by  community</span><br/>"
+                      "<a href='https://www.spark-app.store/'>https://www.spark-app.store</a><br/>"
+                      "<span style=' font-size:12pt;'>Spark developers</span>"
+                      )
+                  );
+
+      dialog.setProductName(QLabel::tr("Spark Store"));
+      dialog.setCompanyLogo(QPixmap(":/spark-store.png"));
+      dialog.setWebsiteName(QObject::tr("The Spark Project"));
+      dialog.setWebsiteLink("https://gitee.com/deepin-community-store");
+
     a.setOrganizationName("spark-union");
     a.setProductName(QObject::tr("Spark Store"));
     a.setApplicationName("Spark Store"); // 不用翻译,影响 ~/.local/share/spark-union 下文件夹名称
     a.setApplicationDisplayName(QObject::tr("Spark Store")); // 设置窗口显示标题 (Wayland 下会显示 Qt 原生标题栏)
     a.setWindowIcon(QIcon::fromTheme("spark-store"));
-
+    a.setApplicationDescription(
+                QObject::tr(
+                    "<span style='font-size:10pt;font-weight:60;'>An appstore powered by deepin community</span><br/>"
+                    "<a href='https://www.spark-app.store/'>https://www.spark-app.store</a><br/>"
+                    "<span style='font-size:12pt;'>Spark developers</span><br/><br/>"
+                    "Published under GPL V3"
+                    )
+                );
     // 限制单实例运行
     if (!a.setSingleInstance("spark-store")) {
         return -1;
@@ -49,6 +97,9 @@ int main(int argc, char *argv[])
     DApplicationSettings settings; // 定义 DApplicationSettings,自动保存主题设置
 
     MainWindow w;
+    // 让打开时界面显示在正中
+    Dtk::Widget::moveToCenter(&w);
+
     QString arg1 = argv[1];
     if (arg1.startsWith("spk://")) {
         w.openUrl(QUrl(argv[1]));