You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

217 lines
175 KiB
HTML

2 years ago
<!DOCTYPE html>
<!-- saved from url=(0038)https://www.jianshu.com/p/968e2339ee5f -->
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge,chrome=1"><meta http-equiv="Cache-Control" content="no-siteapp"><meta http-equiv="Cache-Control" content="no-transform"><meta name="applicable-device" content="pc,mobile"><meta name="MobileOptimized" content="width"><meta name="HandheldFriendly" content="true"><meta name="theme-color" content="#ec7259"><meta name="renderer" content="webkit"><meta name="force-rendering" content="webkit"><meta name="google" value="notranslate"><meta property="wb:webmaster" content="294ec9de89e7fadb"><meta property="qc:admins" content="104102651453316562112116375"><meta property="qc:admins" content="11635613706305617"><meta property="qc:admins" content="1163561616621163056375"><meta name="360-site-verification" content="604a14b53c6b871206001285921e81d8"><meta name="google-site-verification" content="cV4-qkUJZR6gmFeajx_UyPe47GW9vY6cnCrYtCHYNh4"><meta name="google-site-verification" content="HF7lfF8YEGs1qtCE-kPml8Z469e2RHhGajy6JPVy5XI"><meta name="tencent-site-verification" content="da26ce22cfed7aba6a96d8409f9b53a6"><meta name="apple-mobile-web-app-title" content="简书"><link href="data:image/vnd.microsoft.icon;base64,AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAABILAAASCwAAAAAAAAAAAAAAAAAASWTtHEhh5qZIYObmSGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDm5khh5qZJZO0cAAAAAElk7RxIYeXtSGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hh5e1JZO0cSGHmpkhg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hh5qZIYObmSGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDm5khg5f9IYOX/SGDl/0hg5f9IYOX/ipnu/5qn8P9qfen/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/TWTl/5qn8P+grfH/nKnx/3iJ6/9JYeX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f/Cyvb///////T2/f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f99juz//////////////////////8vS9/9LY+X/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/8LK9v///////f3+/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/2l96f+hrfH/o6/x/9HX+P///////////5Gg7/9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/wsr2///////9/f7/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/Vmzn////////////usP1/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f/Cyvb///////39/v9IYOX/SGDl/46d7v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7/8fP9/8LK9v9keOn/SGDl/0hg5f9JYeX///////////+9xvX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/8LK9v///////f3+/0hg5f9IYOX/j53v////////////ydD3/6ax8v+msfL/prHy/6248//t8Pz//////+/x/P9dcuj/SGDl/0lh5f///////////73G9f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/wsr2///////9/f7/SGDl/0hg5f+Pne////////////+RoO//SGDl/0hg5f9IYOX/SGDl/5Kg7////////////56q8f9IYOX/SWHl////////////vcb1/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f/Cyvb///////39/v9IYOX/SGDl/4+d7////////////5Oh7/9JYeX/SWHl/0lh5f9JYeX/h5fu////////////ucL1/0hg5f9JYeX///////////+9xvX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/8LK9v///////f3+/0hg5f9IYOX/j53v//////////////////////////////////////////////////////+4wfX/SGDl/0lh5f///////////73G9f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/wsr2///////9/f7/SGDl/0hg5f+Pne/////////////g5Pr/xs32/8bN9v/Gzfb/xs32/9jd+f///////////7fB9P9IYOX/SWHl////////////vcb1/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f/Cyvb///////39/v9IYOX/SGDl/4+d7////////////5uo8P9IYOX/SGDl/0hg5f9IYOX/gZHt////////////t8D0/0hg5f9JYeX///////////+9xvX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/0hg5f9IYOX/SGDl/8LK9v///////f3+/0hg5f9IYOX/j53v////////////m6jw/0hg5f9IYOX/SG
.vue-modal-resizer {
display: block;
overflow: hidden;
position: absolute;
width: 12px;
height: 12px;
right: 0;
bottom: 0;
z-index: 9999999;
background: transparent;
cursor: se-resize;
}
.vue-modal-resizer::after {
display: block;
position: absolute;
content: '';
background: transparent;
left: 0;
top: 0;
width: 0;
height: 0;
border-bottom: 10px solid #ddd;
border-left: 10px solid transparent;
}
.vue-modal-resizer.clicked::after {
border-bottom: 10px solid #369be9;
}
</style><style type="text/css">
.v--modal-block-scroll {
overflow: hidden;
width: 100vw;
}
.v--modal-overlay {
position: fixed;
box-sizing: border-box;
left: 0;
top: 0;
width: 100%;
height: 100vh;
background: rgba(0, 0, 0, 0.2);
z-index: 999;
opacity: 1;
}
.v--modal-overlay.scrollable {
height: 100%;
min-height: 100vh;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
}
.v--modal-overlay .v--modal-background-click {
width: 100%;
min-height: 100%;
height: auto;
}
.v--modal-overlay .v--modal-box {
position: relative;
overflow: hidden;
box-sizing: border-box;
}
.v--modal-overlay.scrollable .v--modal-box {
margin-bottom: 2px;
}
.v--modal {
background-color: white;
text-align: left;
border-radius: 3px;
box-shadow: 0 20px 60px -2px rgba(27, 33, 58, 0.4);
padding: 0;
}
.v--modal.v--modal-fullscreen {
width: 100vw;
height: 100vh;
margin: 0;
left: 0;
top: 0;
}
.v--modal-top-right {
display: block;
position: absolute;
right: 0;
top: 0;
}
.overlay-fade-enter-active,
.overlay-fade-leave-active {
transition: all 0.2s;
}
.overlay-fade-enter,
.overlay-fade-leave-active {
opacity: 0;
}
.nice-modal-fade-enter-active,
.nice-modal-fade-leave-active {
transition: all 0.4s;
}
.nice-modal-fade-enter,
.nice-modal-fade-leave-active {
opacity: 0;
transform: translateY(-20px);
}
</style><style type="text/css">
.vue-dialog div {
box-sizing: border-box;
}
.vue-dialog .dialog-flex {
width: 100%;
height: 100%;
}
.vue-dialog .dialog-content {
flex: 1 0 auto;
width: 100%;
padding: 15px;
font-size: 14px;
}
.vue-dialog .dialog-c-title {
font-weight: 600;
padding-bottom: 15px;
}
.vue-dialog .dialog-c-text {
}
.vue-dialog .vue-dialog-buttons {
display: flex;
flex: 0 1 auto;
width: 100%;
border-top: 1px solid #eee;
}
.vue-dialog .vue-dialog-buttons-none {
width: 100%;
padding-bottom: 15px;
}
.vue-dialog-button {
font-size: 12px !important;
background: transparent;
padding: 0;
margin: 0;
border: 0;
cursor: pointer;
box-sizing: border-box;
line-height: 40px;
height: 40px;
color: inherit;
font: inherit;
outline: none;
}
.vue-dialog-button:hover {
background: rgba(0, 0, 0, 0.01);
}
.vue-dialog-button:active {
background: rgba(0, 0, 0, 0.025);
}
.vue-dialog-button:not(:first-of-type) {
border-left: 1px solid #eee;
}
</style><style type="text/css"></style></head><body class=""><svg class="wCYvWN" style="display:none;width:0;height:0" width="0" height="0" focusable="false" aria-hidden="true"><symbol id="ic-icon_requests" viewBox="0 0 1024 1024"><path d="M934.4 627.2A38.4 38.4 0 0 1 972.8 665.6v128a140.8 140.8 0 0 1-140.8 140.8H192A140.8 140.8 0 0 1 51.2 793.6V665.6a38.4 38.4 0 1 1 76.8 0v128c0 35.328 28.672 64 64 64h640c35.328 0 64-28.672 64-64V665.6a38.4 38.4 0 0 1 38.4-38.4zM587.4688 91.392l281.8048 244.224a64 64 0 0 1-41.8816 112.384h-148.992V665.6a89.6 89.6 0 0 1-89.6 89.6h-153.6A89.6 89.6 0 0 1 345.6 665.6V448H196.608a64 64 0 0 1-41.8816-112.384l281.8048-244.224a115.2 115.2 0 0 1 150.9376 0zM486.8608 149.4016L230.912 371.2H384a38.4 38.4 0 0 1 38.4 38.4v256c0 7.0656 5.7344 12.8 12.8 12.8h153.6a12.8 12.8 0 0 0 12.8-12.8V409.6a38.4 38.4 0 0 1 38.4-38.4h153.088L537.088 149.4016a38.4 38.4 0 0 0-50.2784 0z"></path></symbol><symbol id="ic-icon_others" viewBox="0 0 1024 1024"><path d="M512 435.2a76.8 76.8 0 1 1 0 153.6 76.8 76.8 0 0 1 0-153.6z m-307.2 0a76.8 76.8 0 1 1 0 153.6 76.8 76.8 0 0 1 0-153.6z m614.4 0a76.8 76.8 0 1 1 0 153.6 76.8 76.8 0 0 1 0-153.6z"></path></symbol><symbol id="ic-icon_money" viewBox="0 0 1024 1024"><path d="M512 51.2a460.8 460.8 0 1 1 0 921.6 460.8 460.8 0 0 1 0-921.6z m0 76.8a384 384 0 1 0 0 768 384 384 0 0 0 0-768zM435.0976 311.3984L510.1568 450.56l75.264-139.52a37.7344 37.7344 0 0 1 49.664-16.0256 33.9456 33.9456 0 0 1 14.7968 47.104l-76.288 135.7824h102.4a29.0304 29.0304 0 1 1 0 58.0608h-127.0272v55.0912h126.976a29.0304 29.0304 0 1 1 0 58.0608h-126.976v49.152a38.8096 38.8096 0 1 1-77.6192 0v-49.152H345.2416a29.0304 29.0304 0 1 1 0-58.0608h126.1056v-55.0912H345.2416a29.0304 29.0304 0 0 1 0-58.0608h101.4272L369.0496 342.784a34.304 34.304 0 0 1 15.0016-48.0768 38.9632 38.9632 0 0 1 51.0464 16.6912z"></path></symbol><symbol id="ic-icon_follows" viewBox="0 0 1024 1024"><path d="M844.8 614.4a38.4 38.4 0 0 1 38.4 38.4v102.4h102.4a38.4 38.4 0 1 1 0 76.8h-102.4512l0.0512 102.4a38.4 38.4 0 1 1-76.8 0l-0.0512-102.4H704a38.4 38.4 0 1 1 0-76.8h102.4v-102.4a38.4 38.4 0 0 1 38.4-38.4z m-370.176-89.6c80.5888 0 158.3104 16.896 227.4816 48.64a38.4 38.4 0 1 1-32.0512 69.7856 468.2752 468.2752 0 0 0-195.3792-41.6256c-175.616 0-327.7312 93.184-378.112 223.9488-13.4144 38.5536-4.7616 57.5488 7.8336 57.5488H665.6a38.4 38.4 0 1 1 0 76.8H104.448c-74.24 0-109.1584-76.8-80.0256-160.768 62.8736-163.1232 244.3264-274.3296 450.2528-274.3296zM460.8 12.8a243.2 243.2 0 1 1 0 486.4 243.2 243.2 0 0 1 0-486.4z m0 76.8a166.4 166.4 0 1 0 0 332.8 166.4 166.4 0 0 0 0-332.8z"></path></symbol><symbol id="ic-icon_comments" viewBox="0 0 1024 1024"><path d="M537.6 51.2a435.2 435.2 0 1 1 0 870.4h-51.2a433.2544 433.2544 0 0 1-209.2544-53.504l-126.976 94.8224a51.2 51.2 0 0 1-81.8688-41.0624v-314.2144A435.2 435.2 0 0 1 486.4 51.2h51.2z m0 76.8h-51.2a358.4 358.4 0 0 0-344.32 458.24c2.048 6.9632 3.072 14.1824 3.072 21.4016v263.168l86.016-64.256a76.8 76.8 0 0 1 82.944-5.7856c52.3264 28.7744 111.104 44.032 172.288 44.032h51.2a358.4 358.4 0 0 0 0-716.8z m89.6 435.2a38.4 38.4 0 1 1 0 76.8h-230.4a38.4 38.4 0 1 1 0-76.8h230.4z m0-204.8a38.4 38.4 0 1 1 0 76.8h-230.4a38.4 38.4 0 0 1 0-76.8h230.4z"></path></symbol><symbol id="ic-icon_chat" viewBox="0 0 1024 1024"><path d="M870.4 153.6a102.4 102.4 0 0 1 102.4 102.4v512a102.4 102.4 0 0 1-102.4 102.4H153.6a102.4 102.4 0 0 1-102.4-102.4V256a102.4 102.4 0 0 1 102.4-102.4h716.8z m0 76.8H153.6a25.6 25.6 0 0 0-25.6 25.6v512a25.6 25.6 0 0 0 25.6 25.6h716.8a25.6 25.6 0 0 0 25.6-25.6V256a25.6 25.6 0 0 0-25.6-25.6z m-113.7664 97.3312a38.4 38.4 0 0 1 47.1552 60.5696l-274.5856 213.9136a38.4 38.4 0 0 1-47.2064 0L208.384 389.12a38.4 38.4 0 1 1 47.2064-60.6208l250.0096 194.7648z"></path></symbol><symbol id="ic-icon_collection" viewBox="0 0 1024 1024"><path d="M819.2 51.2a102.4 102.4 0 0 1 102.4 102.4v707.6864a76.8 76.8 0 0 1-104.192 71.7824L512 816.4864l-305.408 116.5824A76.8 76.8 0 0 1 102.4 861.2864V153.6a102.4 102.4 0 0 1 102.4-102.4h614.4z m0 76.8H204.8a25.6 25.6 0 0 0-25.6 25.6v707.6864l305.408-116.5312a76.8 76.8 0 0 1 54.784
</h4><p>1.什么是Launcher</p><p>2.新建一个Launcher工程</p><p>3.Apps去哪了</p><p>4.显示桌面背景</p><blockquote><p><i>最近换了新工作(๑´ㅁ`)又是要去接触新的知识了。闲话不多说让我们一起来认识一下今天的主角——launcher</i></p></blockquote><h4>什么是Launcher</h4><p>对于初级开发者来说launcher可能还有些陌生它俗称“HomeScreen”也就是我们开机后看到的第一个App。launcher其实就是一个app它的作用用来显示和管理手机上其他App。目前市场上有很多第三方的launcher应用比如“小米桌面”、“91桌面”等等今天我就来说一下如何开发一款自己的launcher应用。</p><h4>新建一个Launcher工程<br>
</h4><p>首先我们在Android studio中新建一个工程这里就不再赘述。要把我们的应用程序作为一个Launcher就需要要在AndroidManifest.xml中添加:</p><div class="image-package">
<div class="image-container" style="max-width: 607px; max-height: 45px; background-color: transparent;">
<div class="image-container-fill" style="padding-bottom: 7.41%;"></div>
<div class="image-view" data-width="607" data-height="45"><img data-original-src="//upload-images.jianshu.io/upload_images/708890-841b675b15e60062.png" data-original-width="607" data-original-height="45" data-original-format="image/png" data-original-filesize="9319" data-image-index="0" style="cursor: zoom-in;" class="" src="./Launcher开发——入门篇 - 简书_files/708890-841b675b15e60062.png"></div>
</div>
<div class="image-caption">设置Activity属性</div>
</div><p>此时我们的AndroidManifest.xml中应该是这样的</p><div class="image-package">
<div class="image-container" style="max-width: 700px; max-height: 382px; background-color: transparent;">
<div class="image-container-fill" style="padding-bottom: 49.74%;"></div>
<div class="image-view" data-width="768" data-height="382"><img data-original-src="//upload-images.jianshu.io/upload_images/708890-d08d130feeea5780.png" data-original-width="768" data-original-height="382" data-original-format="image/png" data-original-filesize="46227" data-image-index="1" style="cursor: zoom-in;" class="" src="./Launcher开发——入门篇 - 简书_files/708890-d08d130feeea5780.png"></div>
</div>
<div class="image-caption">AndroidManifest.xml</div>
</div><p>当我们运行程序时可能会觉得和平常并没有不一样的地方但是当我们点击Home键之后就会看到选择桌面的提示</p><div class="image-package">
<div class="image-container" style="max-width: 379px; max-height: 233px; background-color: transparent;">
<div class="image-container-fill" style="padding-bottom: 61.480000000000004%;"></div>
<div class="image-view" data-width="379" data-height="233"><img data-original-src="//upload-images.jianshu.io/upload_images/708890-bc1bd7bb5560c477.png" data-original-width="379" data-original-height="233" data-original-format="image/png" data-original-filesize="15537" data-image-index="2" style="cursor: zoom-in;" class="" src="./Launcher开发——入门篇 - 简书_files/708890-bc1bd7bb5560c477.png"></div>
</div>
<div class="image-caption">选择桌面</div>
</div><p>可以看到我们开发的“Mylauncher”跟Android自带的Google Now Launcher出现在了一起。 点击我们自己的App并选择always这样我们的应用程序就成为了系统的Home了。可能有读者会吐槽了这根本就不能算作Home吧我们的App们都去哪了</p><h4>Apps去哪了<br>
</h4><p>先别急在探讨如何显示你的Apps之前我们先来学习一下什么是PackageManager。</p><p>官方给我们的定义是:</p><blockquote>
<p>Class for retrieving various kinds of information related to the application packages that are currently installed on the device. You can find this class through getPackageManager().<br></p>
<p>这个类是用于检索设备上应用程序的各种相关信息您可以通过getPackageManager()来获取它。 (翻译的不太对,请见谅( ˘・з・)<br></p>
</blockquote><p>通俗一点来说PackageManager是用于获取Android系统中应用程序的信息查询Application相关信息(applicationactivityreceiverserviceprovider及相应属性等、查询已安装应用、增加或删除permission、清除用户数据、缓存代码段等。既然我们需要显示我们所有的App那自然少不了它的帮助。</p><p>我们可以调用PackageManager的queryIntentActivities()方法来获取一个关于App信息ResolveInfo的集合这个ResolveInfo对象中就包含了应用程序的程序名、包名、入口类名等信息。代码如图所示</p><div class="image-package">
<div class="image-container" style="max-width: 655px; max-height: 89px; background-color: transparent;">
<div class="image-container-fill" style="padding-bottom: 13.59%;"></div>
<div class="image-view" data-width="655" data-height="89"><img data-original-src="//upload-images.jianshu.io/upload_images/708890-71dc3d09b5900fef.png" data-original-width="655" data-original-height="89" data-original-format="image/png" data-original-filesize="15043" data-image-index="3" style="cursor: zoom-in;" class="" src="./Launcher开发——入门篇 - 简书_files/708890-71dc3d09b5900fef.png"></div>
</div>
<div class="image-caption">获取ResolveInfo集合</div>
</div><p>当我们获取了ResolveInfo集合后就可以为所欲为了我这里采用的是用一个GridView来显示所有的App信息示例代码如下</p><div class="image-package">
<div class="image-container" style="max-width: 700px; max-height: 518px; background-color: transparent;">
<div class="image-container-fill" style="padding-bottom: 57.809999999999995%;"></div>
<div class="image-view" data-width="896" data-height="518"><img data-original-src="//upload-images.jianshu.io/upload_images/708890-e85dd41bd423de41.png" data-original-width="896" data-original-height="518" data-original-format="image/png" data-original-filesize="59746" data-image-index="4" style="cursor: zoom-in;" class="" src="./Launcher开发——入门篇 - 简书_files/708890-e85dd41bd423de41.png"></div>
</div>
<div class="image-caption">显示App的图标和名称</div>
</div><p>能显示了还不算我们还要能点击跳转( ´・◡・`)给GridView的item添加单击事件</p><div class="image-package">
<div class="image-container" style="max-width: 700px; max-height: 272px; background-color: transparent;">
<div class="image-container-fill" style="padding-bottom: 32.11%;"></div>
<div class="image-view" data-width="847" data-height="272"><img data-original-src="//upload-images.jianshu.io/upload_images/708890-ff0c9c6ba08f07a1.png" data-original-width="847" data-original-height="272" data-original-format="image/png" data-original-filesize="25891" data-image-index="5" style="cursor: zoom-in;" class="" src="./Launcher开发——入门篇 - 简书_files/708890-ff0c9c6ba08f07a1.png"></div>
</div>
<div class="image-caption">点击跳转</div>
</div><p>经过这么几步之后我们的launcher就可以显示所有的App并可点击跳转了。但是读者可能又会吐槽了没有壁纸也好意思说自己是桌面没关系我们的背景马上就来~</p><h4>设置桌面背景<br>
</h4><p>首先第一步我们需要先让背景显示出来在res/valuses/styles.xml文件下添加如下代码</p><div class="image-package">
<div class="image-container" style="max-width: 590px; max-height: 88px; background-color: transparent;">
<div class="image-container-fill" style="padding-bottom: 14.92%;"></div>
<div class="image-view" data-width="590" data-height="88"><img data-original-src="//upload-images.jianshu.io/upload_images/708890-4d74df68af2347a6.png" data-original-width="590" data-original-height="88" data-original-format="image/png" data-original-filesize="8423" data-image-index="6" style="cursor: zoom-in;" class="" src="./Launcher开发——入门篇 - 简书_files/708890-4d74df68af2347a6.png"></div>
</div>
<div class="image-caption">设置样式</div>
</div><p>接着在AndroidManifest.xml中使用这个Theme</p><div class="image-package">
<div class="image-container" style="max-width: 408px; max-height: 165px; background-color: transparent;">
<div class="image-container-fill" style="padding-bottom: 40.44%;"></div>
<div class="image-view" data-width="408" data-height="165"><img data-original-src="//upload-images.jianshu.io/upload_images/708890-47fbd23dc43abe84.png" data-original-width="408" data-original-height="165" data-original-format="image/png" data-original-filesize="15005" data-image-index="7" style="cursor: zoom-in;" class="" src="./Launcher开发——入门篇 - 简书_files/708890-47fbd23dc43abe84.png"></div>
</div>
<div class="image-caption">使用样式</div>
</div><p>当我们再次运行程序时就可以显示我们的桌面了一个简单的Launcher应用也就开发完成了。</p><div class="image-package">
<div class="image-container" style="max-width: 436px; max-height: 1303px; background-color: transparent;">
<div class="image-container-fill" style="padding-bottom: 186.24%;"></div>
<div class="image-view" data-width="436" data-height="812"><img data-original-src="//upload-images.jianshu.io/upload_images/708890-4f5a41d1e95c3d3a.png" data-original-width="436" data-original-height="812" data-original-format="image/png" data-original-filesize="249740" data-image-index="8" style="cursor: zoom-in;" class="" src="./Launcher开发——入门篇 - 简书_files/708890-4f5a41d1e95c3d3a.png"></div>
</div>
<div class="image-caption">运行结果</div>
</div><p>这仅仅只是一个简单的入门接下来如何设置壁纸、显示widget等功能我会陆续的进行讲解。感谢各位的收看如有那里写的不对还请各位指教(๑´ㅂ`๑)</p><p>推荐阅读:</p><p><b><a href="https://www.jianshu.com/users/3ed3336df2c6/latest_articles" target="_blank">墨香带你学Launcher系列</a></b><br></p><p><b><a href="https://link.jianshu.com/?t=http://www.cnblogs.com/travellife/p/3932823.html" target="_blank" rel="nofollow">PackageManager详解</a></b><br></p><p><a href="https://link.jianshu.com/?t=https://developer.android.com/reference/android/content/pm/PackageManager.html" target="_blank" rel="nofollow"><b>PackageManager'API</b></a><br></p></article><div></div><div class="_1kCBjS"><div class="_18vaTa"><div class="_3BUZPB"><div class="_2Bo4Th" role="button" tabindex="-1" aria-label="给文章点赞"><i aria-label="ic-like" class="anticon"><svg width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class=""><use xlink:href="#ic-like"></use></svg></i></div><span class="_1LOh_5" role="button" tabindex="-1" aria-label="查看点赞列表">40人点赞<i aria-label="icon: right" class="anticon anticon-right"><svg viewBox="64 64 896 896" focusable="false" class="" data-icon="right" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M765.7 486.8L314.9 134.7A7.97 7.97 0 0 0 302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 0 0 0-50.4z"></path></svg></i></span></div><div class="_3BUZPB"><div class="_2Bo4Th" role="button" tabindex="-1"><i aria-label="ic-dislike" class="anticon"><svg width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class=""><use xlink:href="#ic-dislike"></use></svg></i></div></div></div><div class="_18vaTa"><a class="_3BUZPB _1x1ok9 _1OhGeD" href="https://www.jianshu.com/nb/1440683" target="_blank" rel="noopener noreferrer"><i aria-label="ic-notebook" class="anticon"><svg width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class=""><use xlink:href="#ic-notebook"></use></svg></i><span>Android开发随笔</span></a><div class="_3BUZPB ant-dropdown-trigger"><div class="_2Bo4Th"><i aria-label="ic-others" class="anticon"><svg width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class=""><use xlink:href="#ic-others"></use></svg></i></div></div></div></div><div class="_19DgIp" style="margin-top:24px;margin-bottom:24px"></div><div class="_13lIbp"><div class="_16AzcO">更多精彩内容就在简书APP</div><div class="_6S_NkV"><canvas height="110" width="110" style="height: 110px; width: 110px;"></canvas><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABacAAAWnCAMAAABgpz87AAAAh1BMVEX////aZWf45eL99/bcb2788O3ijojeeXf0083vwLnprKbghIDstq/no5zxysT33NjkmJL++vraZ2jklI7ffnv88/HbbGzbaWnoqKH+/f366ebmnJX119LddnPccnH44NzrsaruvLbii4b77evzzsjwx8D22tXhh4PnoJntubLww7z449/deHYjPTZEAAAwHklEQVR42uzBgQAAAACAoP2pF6kCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGD24EAAAAAAAMj/tRFUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYU9OBAAAAAAAPJ/bQRVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWEPDgQAAAAAgPxfG0FVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVdiDAwEAAAAAIP/XRlBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVFfbgQAAAAAAAyP+1EVRVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVhT04EAAAAAAA8n9tBFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYQ8OBAAAAACA/F8bQVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV2IMDAQAAAAAg/9dGUFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUV9uCQAAAAAEDQ/9dusAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE/s3Ytu2kAQBdC5PIsNCRhj8wyOQ4A8/v/72kqNVAkqRexSzc7c8we24Go9Ozs7wm2qPDuKVXvcpsizD6GEPSOGjhBFtcHtduOumDTC7Q