SEO基础

SEO基础

Products

当前位置:首页 > SEO基础 >

如何制作动态效果丰富的淘宝店铺模板网站中的图片?

96SEO 2026-02-20 04:23 17


开发车载应用#xff0c;其实主要都是在Android系统中编写各种系统应用#xff0c;所以上期视频先介绍了Android系统源码的下载和编译流程https://www.bilibili.com/video/BV1NY411z7TK/

如何制作动态效果丰富的淘宝店铺模板网站中的图片?

开发车载应用其实主要都是在Android系统中编写各种系统应用所以上期视频先介绍了Android系统源码的下载和编译流程本期视频我们开始介绍Android系统应用是如何开发的。

系统应用简介

我们第一次启动Android系统的手机时会发现手机中已经预先安装了很多应用例如系统设置、桌面等等。

这些应用并不是通过普通的方法安装到系统上的而是直接嵌入在Android

ROM中直接刷写到硬件里的。

通过这种方式安装的应用无法使用通常的方法卸载。

只有在获取root权限后删除对应目录下的的apk文件或者刷机否则无法移除这些系统应用。

除此以外我们还会发现系统应用拥有远超普通的应用的权限以系统设置为例它可以切换当前系统的用户类型设置其它应用的通知权限甚至于可以卸载Android系统上的普通应用这些功能都是普通应用无法实现的原因就在于Android

SDK未公开的私有API。

拥有更高的系统权限。

直接嵌入到Android

系统应用准备条件

系统应用的特点决定了它的开发方式与普通的Android应用并不完全一样。

首先系统应用可以调用Android

SDK隐藏的API这需要我们引入包含被隐藏API的jar包。

当然如果不需要调用隐藏API这一步可以跳过。

在实际项目中这一步会由负责framework开发的同事协助完成因为farmework层一般都有新增的接口需要一起打包。

1编译Android

frameworks/base以及在/framework/base目录下执行mm都可以。

make

编译成功后进入/out/target/common/obj/JAVA_LIBRARIES/framework-minus-apex_intermediates/下的classes-header.jar就是我们需要的jar包。

SDK中没有公开的API例如用于启用RRO机制的OverlayManager。

如果没有下载AOSP源码上述编译好的framework.jar可以去本视频的github仓库中下载github地址[https://github.com/linxu-link/CarAndroidCourse]可以在本视频的简介中查看。

2导入

allprojects{gradle.projectsEvaluated

{//Arctic

options.bootstrapClasspath.getFiles()ListFile

newFileList

ArrayList();newFileList.add(new

File(./app/libs/framework_header.jar))newFileList.addAll(fileSet)options.bootstrapClasspath

}在App目录的build.gradle中以compileOnly的形式引入jar包。

compileOnly

files(libs/framework_header.jar)第

步制作系统签名

Android系统会识别应用的签名类型并根据签名类型赋予应用相应的权限等级将普通应用提升为系统应用的重要条件就是应用需要使用系统签名。

所以在这一步我们要先制作一份系统签名方便我们在开发时调试应用。

build/target/product/security2制作系统签名

openssl

[android]制作完成后会在当前目录下载生成一个platform.jks的签名文件将它导入到android

3导入

将platform.jks放置在App目录下并build.gradle中加入以下代码。

signingConfigs

file(platform.jks)storePassword

123456keyAlias

studio后app工程就可以直接在Android模拟器中调用系统API同时也可以获取更高等级的权限了。

key文件一般无法使用在真实环境中例如手机车载项目则较为复杂有的项目在开发阶段就会使用较为严格的签名校验那么AOSP的签名文件也是无法使用的。

不过也有项目会在最后的量产阶段更换签名那么在此之前AOSP中test

有关签名文件补充资料如下

在Android源码的build/target/product/security/目录下有如下5对常见的KEY

apk

networkstack.pk8与networkstack.x509.pem

apk

其中“.pk8”文件为私钥“.x509.pem”文件为公钥。

注意此目录中的测试密钥仅用于开发不得用于在公开发布的映像中签署包。

有关密钥的更多内容可以阅读官方的文档https://source.android.com/docs/core/ota/sign_builds?hlzh-cn

而这些密钥如何与被签名的APK对应上呢在APK源码目录下的Android.bp文件中有certificate字段用于指定签名时使用的KEY如果不指定默认使用testkey。

系统应用对应的certificate可设定为如下的值。

certificate:

media而在Android.bp中的这些配置需要在APK源码的AndroidManifest.xml文件中的manifest节点添加如下内容

android:sharedUserIdandroid.uid.system

android:sharedUserIdandroid.uid.shared

android:sharedUserIdandroid.media实践系统应用

步定义需求

为了让各位能直观的感受到『系统应用』与『普通应用』的区别我们要求『系统应用』完成以下的功能

View

在屏幕上且不需要授权『显示在其它应用的上层』应用被杀死后自动拉起即进程保活

这些功能都是在『普通应用』上难以实现的需求我们演示一下在『系统应用』上是如何实现的。

开机自启与进程保活两项功能Android系统本身已经提供了相应的机制来实现我们只需要在manifest.xml中进行配置即可。

persistent

设定应用是否保持常驻状态。

默认值为false设定为true为开启常驻模式常驻模式仅适用于系统应用。

开启常驻模式后应用会在Android系统开机动画播放完毕之前就会完成启动同时应用会常驻后台即使被杀死后也会立即拉起。

applicationandroid:persistenttrue除此以外系统应用中还有一些可能较为常用的属性可以配置我们逐一介绍。

android:sharedUserId

ID。

如果两个或多个应用将此属性设置为相同的值则这些应用都将共享相同的

API

android:sharedUserMaxSdkVersion“32”

manifest

xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:sharedUserIdandroid.uid.systemandroid:sharedUserMaxSdkVersion32directBootAware

直接启动模式。

直接启动模式是在Android7.0之后出现的当设备已正常开机但尚未解锁时称设备处于DirectBoot模式。

默认情况下应用不会在DirectBoot模式下启动即使是系统应用。

如果应用需要在DirectBoot模式下启动可以在manifext.xml将directBootAware属性设定为true。

application

已安排通知的应用如闹钟应用提供重要用户通知的应用如短信应用提供无障碍服务的应用如

Credential

storage凭据加密存储区。

默认存储数据的地方仅在用户解锁手机后可用。

Device

encrypted

storage设备加密存储区。

主要对应的就是DirectBoot时使用的存储空间。

该存储空间在DirectBoot模式下和用户解锁手机后都可以使用。

0-当Android系统开机后首先进入一个DirectBoot模式如果应用在DirectBoot模式下运行时需要访问本地数据可以通过调用Context.createDeviceProtectedStorageContext()创建一个特殊的Context实例。

通过此实例发出的所有存储类

API

appContext.createDeviceProtectedStorageContext();//

Access

directBootContext.openFileInput(appDataFilename);//

Use

content...如果需要监听屏幕解锁的时机可以注册下面的广播

receiverandroid:directBootAwaretrue

android:nameandroid.intent.action.LOCKED_BOOT_COMPLETED

一些关键的系统应用或服务需要在Android屏幕解锁前完成启动并开始运行这种情况就可以配置为直接启动模式。

此时必仔细阅读官方文档防止出现意外的bug官方文档https://developer.android.google.cn/training/articles/direct-boot?hlzh-cn

uses-library

车载应用项目中可能会它用来加载一些framework自定义的共享库。

uses-libraryandroid:namestringandroid:required[true

false]

/android:name库的名称。

此名称由您使用的软件包的文档提供。

例如“android.test.runner”是一个包含

Android

true如果没有此库则应用将无法正常运行。

系统不允许在没有此库的设备上安装应用。

false应用可以使用此库如果存在但专门在没有此库的情况下运行如果有必要。

系统允许安装应用即使不存在此库也是如此。

如果您使用

false则需要在运行时检查有没有此库

xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:sharedUserIdandroid.uid.systemandroid:sharedUserMaxSdkVersion32xmlns:toolshttp://schemas.android.com/toolsuses-permission

android:nameandroid.permission.SYSTEM_ALERT_WINDOW

/applicationandroid:name.SystemApplicationandroid:iconmipmap/ic_launcherandroid:labelstring/app_nameandroid:persistenttrueandroid:supportsRtltrueandroid:***mestyle/Theme.SystemAppactivityandroid:name.MainActivityandroid:exportedtrueintent-filteraction

android:nameandroid.intent.action.MAIN

/category

android:nameandroid.intent.category.LAUNCHER

//intent-filter/activityserviceandroid:name.SystemServiceandroid:enabledtrueandroid:exportedtrueintent-filteraction

android:namecom.android.systemapp.action

//intent-filter/service/application/manifest第

步编写逻辑代码

本应用中只有一个Service在Application中启动该Service。

class

Intent()intent.setPackage(com.android.systemapp)intent.setAction(com.android.systemapp.action)startService(intent)}

}在Service中我们通过WindowManager绘制一个View系统动画没有播放完毕之前该View是无法进行绘制和显示的。

换句话说当这个View可以绘制时系统动画已经播放完毕且SystemUI已经显示出来了。

创建用于

getSystemService(DisplayManager::class.java)

val

dm.getDisplay(Display.DEFAULT_DISPLAY)

val

createDisplayContext(defaultDisplay)

val

defaultDisplayContext.createWindowContext(TYPE_APPLICATION_OVERLAY,

null);//

ctx.getSystemService(WindowManager::class.java)

val

mWindowManager.getCurrentWindowMetrics().getBounds();val

windowSizeTest:

SystemService::class.java.simpleName;override

fun

getSystemService(DisplayManager::class.java)val

defaultDisplay

dm.getDisplay(Display.DEFAULT_DISPLAY)val

createDisplayContext(defaultDisplay)val

ctx

defaultDisplayContext.createWindowContext(TYPE_APPLICATION_OVERLAY,

null);//

在屏幕上绘制一个像素的view用于监控开机动画是否播放完毕val

mWindowManager

ctx.getSystemService(WindowManager::class.java)val

bounds

mWindowManager.getCurrentWindowMetrics().getBounds();val

windowSizeTest:

暂停5秒后移除该ViewThread{sleep(5_000)mWindowManager.removeView(this)}.start()}}val

testParams:

WindowManager.LayoutParams(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,WindowManager.LayoutParams.FLAG_NOT_FOCUSABLEand

WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ONand

WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE)testParams.width

bounds.width()

bounds.height()/2testParams.gravity

TAGmWindowManager.addView(windowSizeTest,

testParams)}

Studio中的模拟器来验证系统应用的运行方式是否符合我们的预期。

push

模拟器重启后SystemApp进程会自动启动并在屏幕上覆盖一个黑色View整个过程中

SystemApp

进程拉起。

普通应用上难以实现的进程保活在『系统应用』上轻而易举的就可以达成了而且进入系统设置中查看

SystemApp

应用开发说到底都是在做系统应用开发了解系统应用的开发方式是我们入门车载

Android

好以上就是本视频的全部内容了。

本视频的文字内容发布在我的个人微信公众号-『车载

PPT

文件和源码发布在我的Github[https://github.com/linxu-link/CarAndroidCourse]中在本视频的简介里可以找到相应的地址。

参考资料

https://developer.android.google.cn/guide/topics/manifest/application-element?hlzh-cn#persistent

https://developer.android.google.cn/guide/topics/manifest/manifest-element?hlzh-cn#uid



SEO优化服务概述

作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。

百度官方合作伙伴 白帽SEO技术 数据驱动优化 效果长期稳定

SEO优化核心服务

网站技术SEO

  • 网站结构优化 - 提升网站爬虫可访问性
  • 页面速度优化 - 缩短加载时间,提高用户体验
  • 移动端适配 - 确保移动设备友好性
  • HTTPS安全协议 - 提升网站安全性与信任度
  • 结构化数据标记 - 增强搜索结果显示效果

内容优化服务

  • 关键词研究与布局 - 精准定位目标关键词
  • 高质量内容创作 - 原创、专业、有价值的内容
  • Meta标签优化 - 提升点击率和相关性
  • 内容更新策略 - 保持网站内容新鲜度
  • 多媒体内容优化 - 图片、视频SEO优化

外链建设策略

  • 高质量外链获取 - 权威网站链接建设
  • 品牌提及监控 - 追踪品牌在线曝光
  • 行业目录提交 - 提升网站基础权威
  • 社交媒体整合 - 增强内容传播力
  • 链接质量分析 - 避免低质量链接风险

SEO服务方案对比

服务项目 基础套餐 标准套餐 高级定制
关键词优化数量 10-20个核心词 30-50个核心词+长尾词 80-150个全方位覆盖
内容优化 基础页面优化 全站内容优化+每月5篇原创 个性化内容策略+每月15篇原创
技术SEO 基本技术检查 全面技术优化+移动适配 深度技术重构+性能优化
外链建设 每月5-10条 每月20-30条高质量外链 每月50+条多渠道外链
数据报告 月度基础报告 双周详细报告+分析 每周深度报告+策略调整
效果保障 3-6个月见效 2-4个月见效 1-3个月快速见效

SEO优化实施流程

我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:

1

网站诊断分析

全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。

2

关键词策略制定

基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。

3

技术优化实施

解决网站技术问题,优化网站结构,提升页面速度和移动端体验。

4

内容优化建设

创作高质量原创内容,优化现有页面,建立内容更新机制。

5

外链建设推广

获取高质量外部链接,建立品牌在线影响力,提升网站权威度。

6

数据监控调整

持续监控排名、流量和转化数据,根据效果调整优化策略。

SEO优化常见问题

SEO优化一般需要多长时间才能看到效果?
SEO是一个渐进的过程,通常需要3-6个月才能看到明显效果。具体时间取决于网站现状、竞争程度和优化强度。我们的标准套餐一般在2-4个月内开始显现效果,高级定制方案可能在1-3个月内就能看到初步成果。
你们使用白帽SEO技术还是黑帽技术?
我们始终坚持使用白帽SEO技术,遵循搜索引擎的官方指南。我们的优化策略注重长期效果和可持续性,绝不使用任何可能导致网站被惩罚的违规手段。作为百度官方合作伙伴,我们承诺提供安全、合规的SEO服务。
SEO优化后效果能持续多久?
通过我们的白帽SEO策略获得的排名和流量具有长期稳定性。一旦网站达到理想排名,只需适当的维护和更新,效果可以持续数年。我们提供优化后维护服务,确保您的网站长期保持竞争优势。
你们提供SEO优化效果保障吗?
我们提供基于数据的SEO效果承诺。根据服务套餐不同,我们承诺在约定时间内将核心关键词优化到指定排名位置,或实现约定的自然流量增长目标。所有承诺都会在服务合同中明确约定,并提供详细的KPI衡量标准。

SEO优化效果数据

基于我们服务的客户数据统计,平均优化效果如下:

+85%
自然搜索流量提升
+120%
关键词排名数量
+60%
网站转化率提升
3-6月
平均见效周期

行业案例 - 制造业

  • 优化前:日均自然流量120,核心词无排名
  • 优化6个月后:日均自然流量950,15个核心词首页排名
  • 效果提升:流量增长692%,询盘量增加320%

行业案例 - 电商

  • 优化前:月均自然订单50单,转化率1.2%
  • 优化4个月后:月均自然订单210单,转化率2.8%
  • 效果提升:订单增长320%,转化率提升133%

行业案例 - 教育

  • 优化前:月均咨询量35个,主要依赖付费广告
  • 优化5个月后:月均咨询量180个,自然流量占比65%
  • 效果提升:咨询量增长414%,营销成本降低57%

为什么选择我们的SEO服务

专业团队

  • 10年以上SEO经验专家带队
  • 百度、Google认证工程师
  • 内容创作、技术开发、数据分析多领域团队
  • 持续培训保持技术领先

数据驱动

  • 自主研发SEO分析工具
  • 实时排名监控系统
  • 竞争对手深度分析
  • 效果可视化报告

透明合作

  • 清晰的服务内容和价格
  • 定期进展汇报和沟通
  • 效果数据实时可查
  • 灵活的合同条款

我们的SEO服务理念

我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。

提交需求或反馈

Demand feedback