快速制作 android 重启appapp,真的只要几秒钟

《Android APP可以有的东西》之显示篇:快速启动App - 简书
《Android APP可以有的东西》之显示篇:快速启动App
又有好久木有更新啦,快成咸鱼了。
早上看到一篇关于app快速启动的公众号文章,觉得应该全面了解一下这个东西,所以这篇文章就小小地实践一下下记录下来,内容并不多,demo都没有必要上,大家直接看代码实践过程和效果就行了。
文章最后会附上那篇公众号文章的链接。
现在的大厂app一般的套路是这样:点击图标即可启动界面(splash界面),等几秒出来一个广告界面(welcome界面),点击跳转链接倒计时跳过按钮应有尽有贼厉害地再显示几秒,然后再进入主页。
通常在写demo的时候会遇到一个困惑:打开app会白屏或者黑屏一小段时间,大厂点击图标即可就可以启动的效果还是不错的,所以下面开始实现。
public class SplashActivity extends AppCompatActivity {
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SystemClock.sleep(2000);
startActivity(new Intent(SplashActivity.this, MainActivity.class));
上面是splash类,作为启动的activity,但是没有layout,重点是它的theme:
&activity android:name=".SplashActivity"
android:theme="@style/StartStyle"&
&intent-filter&
&/activity&
style文件:
&style name="StartStyle" parent="AppTheme"&
&item name="android:windowBackground"&@drawable/splash&/item&
然后就是具体的@drawable/splash了:
&layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:opacity="opaque"&
&item android:drawable="@color/colorAccent"/&
android:gravity="center"
android:src="@mipmap/ic_launcher"/&
&/layer-list&
这里随手放置了一个小图标
然后就是上面动态图的效果啦。
最后,那篇公众号文章的链接
【显示篇】扩展阅读
本文作者:paradoxie
个人主页:
简书地址:
github地址:
转载请注明出处,蟹蟹!
-------我的梦想真的是做一条咸鱼!
爱跑步;听民谣;二刺螈;编小说;写诗词。创业中。认知浅陋的码渣。
简书只发表技术文。更多文章请转向个人地址:http://www.paradoxie.top
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金 相信有很多...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金相信有很多朋友...
这是一个用于iOS开发的各种开源库、开源资料、开源技术等等的索引库.转载自:https://github.com/Tim9Liu9/TimLiu-iOSgithub排名 https://github.com/trendinggithub搜索:https://github.c...
完整App@ HackerNews-React-Native用 React Native 完成的 HackerNews 客户端。 WeChat实现类似微信朋友圈或者QQ空间,评论回复,九宫格布局。处理键盘弹出后定位到当前点击的被评论人处。另:滑动时候FPS在57-60之间,...
发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注
09:45字数 61697阅读 3316评论 2喜欢 85 用到的组件 1、通过CocoaPods安装 项目名称 项目信息 AFNetworking 网络请求组件 FM...
遇见一点点自己预料之外的改变,就瞬间变身绿巨人。怒吼加暴走不停歇。以前,我以为这叫有性格。现在,我觉得这就是刺猬型人格,自己不好受了,也绝不让其他亲近他的人好受。但是,明明都是无伤大雅的小事啊,忍忍会出内伤吗?或者,心胸开阔一点是不是根本就不会有焦虑这种疾病产生了。
1、NLP沟通技巧-先跟后带。在NLP课堂通过技巧练习,发现我们找共性,找共同价值,“带”会比较容易,反而跟的部分会比较少(同步情绪、同步语音语调、肢体动作),我相信通过不断的练习实践运用跟的部分也会很自然的做到,形成自己固有的沟通方式。加油!Nlper. 2、NLP技巧-...
上课,锻炼身体
【R】 书名:被讨厌的勇气作者:岸见一郎
古贺史健 (P85)基本上,一切人际关系矛盾都起因于对别人的课题妄加干涉或者自己的课题被别人妄加干涉。只要能够进行课题分离,人际关系就会发生巨大改变。(P89)关于自己的人生你能够做的就只有“选择自己认为最好的道路”。另一方面,别...5分钟教你打造一个秒开的Android App5分钟教你打造一个秒开的Android App宾子微笑百家号背景:近日在开发过程中,发现每次点击app从桌面启动都有一个在桌面明显的等待时间,机型越低端的越明显,冷启动优化看来已经势在必行,所以怒而一顿研究再解决之。话不多说先上优化前后效果图:买家秀:淘宝秀:Android App启动流程:俗话说要想优化好,流程不可少!关于android app启动的流程图如下:总结一下一个完成的冷启动app过程应该是经过:Zygote Fork Proccess -> Application:attachBaseContext() -> Application:onCreate() -> MainActiviity:onCreate()这里主要是把相应的生命周期回调写出来。 因为一般大家的业务代码都是在这些函数回调中调用。App冷启动相关优化点1. 生命周期内减少耗时操作:· Application:attachBaseContext():这个方法中一般雷区主要都在这句代码上,因为在Android 5.0(API 21) 以下会存在65535方法数分包的问题,当dex过大时会导致Application启动慢, ANR或者ClassNotFound等异常,关于分包解决和优化方案网上一堆就不在做赘述了。· Application:onCreate()这个方法是需要重点优化的,因为大家的第三方插件初始化一般都会放在这里,在Application初始化做繁重的东西会严重阻塞app启动(DiskIO,网络请求等)。以下是我们第三方插件初始化的耗时:debug:release:这里把debug和release下的时间都贴出来,是希望大家不要重蹈覆辙。。。 因为debug模式下和release模式下一个是1000ms左右, 一个是300ms左右,误差很大,请大家一定要在release下测试数据!!!!针对于解决第三方插件初始化耗时方案一般是:1.SDK分优先级加载,非必要SDK由懒加载实现。2.可以多线程初始化的sdk由多线程方式来进行初始化。· MainActiviity:onCreate()同上一样,尽量不要在此布局做一些耗时的操作或者呈现一些过于复杂的布局。在具体分析自己的app时发现onCreate中有这样一行代码:其作用是希望用户在打开时,一定能看见Splash的画面,主动延迟了1s加载。这里其实有更好的解决办法处理,则是把跳转MainPage的方法放在onResume中而不是放在onCreate中。因为Android系统中onResume一定是处于可见可交互的状态,用户一定能看见SplashActivity再去跳转,由系统生命周期决定,而不是固定的等待1s,此处优化后启动速度又提升了500ms。所以建议大家以后还是遵循生命周期去做一些事情,尽量别进行人为延迟阻塞。2. 避免冷启动App启动方式一般有3种:· ColdStart ——冷启动:此种方式最为耗时,一般是因为进程被干掉,系统需要重新fork进程进行一系列初始化。· WarmStart ——暖启动比ColdStart稍快,因为app的所有Activities还常驻在内存中,并没有被杀掉,所做的只是把app从后台提到前台来展示,并不需要重走初始化一系列行为,减少了对象初始化、布局加载等工作。但其行为表现与冷启动一致,是会displays a blank screen直到App渲染activity。这个blank screen后面会解释。· LukeWarm Start——热启动启动方式最快,类似于返回键退出应用又立即进入的那种行为。优化方案:既然冷启动那么慢,我们就在非用户主动kill进程或系统通知kill进程的其他情况下不再主动退出进程。那答案很简单了,就是在位于Activity栈底activity中Hook其返回键行为,保证用户点击返回键后不再退出app。在我们App里位于我们栈底的一定是我们的MainActivity,因为一系统行为都是由其向下衍生的。所以只需加入以下几句话:moveTaskToBack:作用是不再Finish到此Activity,仅仅是把它放到后台隐藏。类似于用户主动触发系统Home键的效果。在同是点击返回键优化前后的对比如下:优化前:优化后:若图1中时间久后进程回收后优化效果会更为明显。3.WindowBackGround——脱下秒开的最后一层薄丝袜经过上面一顿操作后,我发现然并卵!!!启动速度是提升了,但是App一点击还是会在桌面停顿一下。哇呀~很难受~细细思考了一下,一个APP启动无论如何都是会新Fork进程,难道就是这个问题导致其在桌面上停顿一会儿?那其他app又是怎么做到秒开的呢?在AndroidDeveloper的Launch-Time Performance有这么一句话:其实在创建App进程时,android系统会为你立即显示一个background window,然后再去创建app进程,当app完成first draw时,会立即由你的MainActivity(即默认启动的Activity)替换掉它。这里的background window就是上文WarmStart中提到的blank screen。谜底到此解开所谓的秒开原来就是视觉欺骗。。。所以说有人给你说他只是仅仅是优化生命周期内初始化代码达到秒开都是扯淡。但不得不承认这样用户体验大大的提升了,一点击launcher就渲染好一个背景图片,给用户一种已经启动的感觉,前面做的一系列优化,不过为了让用户少看一会儿系统给渲染的black window。那为什么我们的APP会出现在系统桌面上停留一会,而不是渲染背景图呢?原来在项目创建时,系统会为launcherActivity默认了一个LightTheme,这样就会导致App点击启动后会白屏一段时间然后展示自己的Activity,为了解决白屏的问题把theme主题换成透明的就像下面但其实这样虽然解决了白屏的问题,但是就会出现上文所说的,点击后停留在桌面一会儿,直至MainActivity渲染出来。这是大部分App的做法,但并不是最佳解决方案。WindowBackground最佳解决方案:应该由windowBackground此属性作为你的品牌推广页或者logo页,如果你的SplashActivity完全不需要做任何初始化,只是希望有个闪屏页,完全可以由windowBackground来满足。1.设置自定义带windowBackground的Theme前两行代码是设置Theme不透明并且默认渲染的背景图是我们必看影视闪屏页的图片。- windowBackground:关键,主要设置你想要的背景图或者是动态自绘的drawable皆行,这个视图会在你冷启动时渲染给用户过渡看。- windowFullscreen:全屏展示,免得顶部状态栏显现颜色不一致过于脱节和突兀2. 为你的launcher Activity设置你的启动Theme3. 在Launch Activity启动后再把主题设置回自己的AppTheme此时你的App就能完成秒开了!推荐测试工具最终我们App从launcher点击到第一个Activity渲染完成总共需要时间是888ms,很吉利!· Time to full Display上图的那行日志是由系统打印出来的,意思就是渲染Acitivity所需要的时间,如果是第一个Activity启动时长也是算在内的。 在Android4.4(API19)以上才会有此Log打出,在verbose级别搜索Displayed即可。不仅可以看自己的还可以看到其他APP的启动时长。附带一张小米4上业界各大App的冷启动时长~仅供参考~· Hugo执行时间打印神器,集成至项目后,只需在想要测试的地方加上注解即可:可以是class级别,也可以是函数级别。如果注解是Appication类级别,还会把各大生命周期回调函数执行时间打印出来及其方便!GitHub传送门效果如下:· Stetho这是非死不可出的调试神器,如果开发android这个没用过的话,你一定会觉得相见恨晚!想看更多精彩内容请关注微信公众号“Gad-腾讯游戏开发者平台”!原文链接:http://www.gad.qq.com/article/detail/28915?ADTAG=gad.tg.tt转载请注明出处!本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。宾子微笑百家号最近更新:简介:我要坚持写文,写到世界充满爱作者最新文章相关文章快速制作 android app,真的只要几秒钟_百度知道
快速制作 android app,真的只要几秒钟
我有更好的答案
用appmaker吧
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。请完成以下验证码
查看: 14515|回复: 4
AppsGeyser:快速制作 android app,真的只要几秒钟
本帖最后由 bbbxyoiil 于
11:26 编辑
AppsGeyser:快速制作 android app,真的只要几秒钟
今天要介紹的AppsGeyser就有一點像是PhoneGap和AppInventor的綜合體,使用者只要在網頁上填寫一些簡單的選項,就可以快速的把網頁做成一個Android的App。
1.png (35.5 KB, 下载次数: 86)
11:22 上传
用AppsGeyser把網頁做成一個App非常的快速,使用者可以選擇三個方式,包括直接輸入一個手機網頁的URL、直接輸入一小段widget的html碼、或是直接在網頁裡選取區塊。
AppsGeyser實作
筆者試著選用抓取網頁區塊的方式來做一個android app。選了WEB PAGE CONTENT後,輸入pchome的購物網站。
2.png (17.89 KB, 下载次数: 14)
11:22 上传
因為筆者想要做一個可以自動更新24小時優惠資訊的app,所以把24小時優惠訊息的區塊圈起來後,選GRAB!!
3.png (259.36 KB, 下载次数: 11)
11:23 上传
很難想像吧!這樣一個Android App就完成了!功能非常完善的儀表板系統還可以讓你看到現在安裝和下載的次數,還可以讓你測試、發佈甚至開始用這個App賺錢。
4.png (115.32 KB, 下载次数: 7)
11:23 上传
選擇TEST後,可以直接透過QR code下載app。
5.png (96.09 KB, 下载次数: 6)
11:23 上传
如果你本身已經是android market的publisher,強大的Appsgeyser還可以讓你直接把剛做好的app發佈到android market上!或是也可以透過其他方式來分享。
6.png (103.61 KB, 下载次数: 12)
11:23 上传
AppsGeyser的使用者體驗仍然不是很好!這三種製作方式,筆者都有試做過了,其中使用web版的網頁url的方式寫成的app使用者體驗最 好,因為打開app的感覺就和打開網頁的感覺一模一樣。而筆者也把plurk的widget程式碼做成了一個app,和pchome用grab的方式做的 一樣,都有黑邊太多,使用者體驗很差的問題,歡迎讀者也分享實作後的心得。
開發androd App的方式愈來愈多種,以這種方式開發的網頁app也直接丟上android market的話,雖然也許可以讓Android market的app數量愈來多,但是我想android裡app的平均品質也只會愈來愈差。
感谢支持,欢迎常来: )
到这里来看一看,学习一下。
这个方便。
难怪market中这种优惠信息的app这么多
进来学习一下
Copyright & KaFan &KaFan.cn All Rights Reserved.
Powered by Discuz! X3.4( 苏ICP备号 ) GMT+8,}

我要回帖

更多关于 android 重启app 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信