万丈高楼从地起,每个大神都是从第一行代码开始自己的编程之路。今天在这里就和大家分享一篇文章,一起从零到一,实现Android欢迎界面~
原文地址:Android实现欢迎界面
Android项目实现欢迎界面
在我们使用软件的时候,打开一款应用,首先出现的就是欢迎界面,它不仅是应用的入口,也简单概括了app的功能,有美观的作用。同时,在显示欢迎界面的同时,我们可以为主页的数据进行预加载,这样可以让我们的UI更加流畅,用户体验更佳。
值得注意的是,欢迎界面分两种:
- 第一次安装时的欢迎界面
- 首次启动(未关闭应用程序)时的欢迎界面
1.区分两种欢迎界面
为了区分上述的两种欢迎界面,我们可以通过设置sharepreference中的键对值为版本号来实现。
- 若键对值为空,即指定的键值不存在,则说明没有安装APP,使用第一种欢迎界面。
- 若存在键对值,则使用第二种欢迎界面。
存储键对值:
SharedPreferences sp=getSharedPreferences("appDetails", Context.MODE_PRIVATE);
sp.edit().putString("welcome",welcome).apply();
读取键对值:
SharedPreferences sp=getSharedPreferences("appDetails", Context.MODE_PRIVATE);
welcome=sp.getString("welcome",null);
2.欢迎界面的简单实现
这里实现最常见的,第二种欢迎界面。第一种欢迎界面与之类似,可以使用轮播图或者viewpage实现。
实现第二种欢迎界面,主要要考虑到的就是欢迎界面要保留一段时间以便于加载主页面所需要的一些资源、检查版本号,检查token,可以使得用户体验更好。此处以2s为例,实现延时跳转有常见的两种方法,一种是Handler,另外一种是Timer。
public class Welcome extends AppCompatActivity {
public String welcome;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);
SharedPreferences sp=getSharedPreferences("appDetails", Context.MODE_PRIVATE);
welcome=sp.getString("welcome",null);
if(welcome==null){
//显示第一种欢迎界面的代码 ……(此处省略)
sp.edit().putString("welcome","1").apply();
}
else{
//plan1 timer
// new Timer().schedule(new TimerTask() {
// @Override
// public void run() {
// startActivity(new Intent(getApplicationContext(), home.class));
// finish();
// }
// }, 2000);
//plan2 handler
new Handler(new Handler.Callback() {
// 处理接收到消息的方法
@Override
public boolean handleMessage(Message msg) {
startActivity(new Intent(getApplicationContext(), home.class));
finish();
return false;
}
}).sendEmptyMessageDelayed(0,2000);
}
}
}
其实这里只是简单地实现了欢迎界面的延时,我们在欢迎界面中这段时间内可以检查软件的版本检测是否需要更新,可以检查token来决定需不需要重新登陆,同时可以测试服务器是否停机,为主页进行必要的预加载等等。由于这些和项目之后的东西有关,有些自己也还没写好,之后会对欢迎界面延时这段过程中进行的处理进行完善。
Android学习指南
现在搞Android开发的竞争压力和以前相比大了很多。
Android学习之路需要学习的东西还有很多,在这里给大家列举一个学习路线供大家参考。
- 架构师筑基语言基础
目前Android APP开发主流语言就是Java语言,Java语言最大的特性就是提高了软件的交互可能性,可以说安卓手机几乎所有应用程序都是利用Java语言来进行编写的。
知识要点:
1、深入理解Java泛型
2、注解深入浅出
3、并发编程
4、数据传输与序列化
5、Java虚拟机原理
6、高效IO
- 设计思想解读开源框架
随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、快速迭代的目的越来越难,插件化技术应用而生。如果没有插件化技术,美团、淘宝这些集成了大量“app”的应用,可能会有几个g那么大。
所以,当今的Android移动开发,不会热修复、插件化、组件化,80%以上的面试都过不了。
知识要点:
1、热修复设计
2、插件化框架设计
3、组件化框架设计
4、图片加载框架
5、网络访问框架设计
6、RXJava响应式编程框架设计
- 360°全方位性能调优
在不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。
另外,随着产品内容迭代,功能越来越复杂,UI页面也越来越丰富,也成为流畅运行的一种阻碍。综上所述,对APP进行性能优化已成为开发者该有的一种综合素质,也是开发者能够完成高质量应用程序作品的保证。
知识要点:
1、设计思想与代码质量优化
2、程序性能优化
启动速度与执行效率优化
布局检测与优化
内存优化
耗电优化
网络传输与数据储存优化
APK大小优化3、开发效率优化
分布式版本控制系统Git
自动化构建系统Gradle4、项目实战
启动速度
流畅度
抖音在APK包大小资源优化的实践
优酷响应式布局技术全解析
网络优化
手机淘宝双十一性能优化项目揭秘
高德APP全链路源码依赖分析
彻底干掉OOM的实战经验分享
微信Android终端内存优化实践
- Android框架体系架构
Android框架体系架构(高级UI+FrameWork源码) 这块知识是现今使用者最多的,我们称之Android2013~2016年的技术。
Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道, 天天在复制这些代码 ;陌生的是虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。
知识要点:
1、高级UI晋升
2、Android内核组件
3、大型项目必备IPC
4、数据持久与序列化
5、Framework内核解析**
- NDK模块开发(音视频开发系列)
NDK(Native Development Kit缩写)一种基于原生程序接口的软件开发工具包,可以让您在 Android 应用中利用 C 和 C++ 代码的工具。通过此工具开发的程序直接在本地运行,而不是虚拟机。
在Android中,NDK是一系列工具的集合,主要用于扩展Android SDK。NDK提供了一系列的工具可以帮助开发者快速的开发C或C++的动态库,并能自动将so和Java应用一起打包成apk。
知识要点:
1、NDK开发之C/C++入门
2、JNI模块开发
3、Linux编程
4、底层图片处理
5、音视频开发
6、机器学习
- Flutter学习进阶
2020 年无疑是 Flutter 技术如火如荼发展的一年。现在这门技术也依然非常有价值。
每一个移动开发者都在为 Flutter 带来的“快速开发、富有表现力和灵活的 UI、原生性能”的特色和理念而痴狂,从超级 App 到独立应用,从纯 Flutter 到混合栈,开发者们在不同的场景下乐此不疲的探索和应用着 Flutter 技术,也在面临着各种各样不同的挑战。
知识要点:
1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter Dart语言系统入门**
……
- 微信小程序开发
微信小程序作为现在比较火的编程开发应用场景之一,深受市场的青睐,这让不少开发者眼馋不已。但是对于初学者来说,就完全摸不着头脑了,不知道微信小程序开发制作需要学习那些知识,有需要的朋友可以参考本篇。
本篇知识要点:
1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战
- Android相关源码解读
这里大家可以去看这一篇文章:牛掰!阿里P7大佬爆肝半个月,把安卓源码解析编成了508页的PDF。
完整版资料已经整理成为PDF文档,感兴趣的朋友可以点击此处,快速获取!希望能帮助到大家!