Android Studio 学习——整体框架和概念

一、创建新项目

选择File-->New-->New Project

这里可以随便选,我一般选择Empty Activity,不同的选择,只是界面不同而已。然后静静的等待安装就可以了

二、框架结构

1)manifests

  • manifests文件是一个XML文件,它描述了应用程序的基本信息。这些信息包括应用程序的名称、图标、版本号、权限、组件等。
  • manifests文件是Android应用程序的核心文件之一,它定义了应用程序的基本结构和行为,同时也是Android系统在安装和运行应用程序时的重要依据。
  • manifests文件位于项目的根目录下的app/src/main目录中,开发者可以通过编辑manifests文件来配置应用程序的基本信息和行为。

2)Java

java文件夹中也有许多activity(名字不一定相同)文件

a、Activity生命周期

当用户浏览、退出和返回到您的应用时,您应用中的 Activity 实例会在其生命周期的不同状态间转换。Activity 类会提供许多回调,这些回调会让 Activity 知晓某个状态已经更改:系统正在创建、停止或恢复某个 Activity,或者正在销毁该 Activity 所在的进程。
在生命周期回调方法中,您可以声明用户离开和再次进入 Activity 时 Activity 的行为方式。例如,如果您正构建流媒体视频播放器,当用户切换至另一应用时,您可能要暂停视频或终止网络连接。当用户返回时,您可以重新连接网络并允许用户从同一位置继续播放视频。换言之,每个回调都支持您执行适合给定状态变更的特定作业。在合适的时间执行正确的作业,并妥善处理转换,这将提升应用的稳健性和性能。例如,良好的生命周期回调实现有助于防止应用出现以下问题:
– 当用户在使用应用时接听来电,或切换至另一应用时崩溃。
– 当用户未主动使用它时,消耗宝贵的系统资源。
– 当用户离开应用并在稍后返回时,丢失用户的进度。
– 当屏幕在横向和纵向之间旋转时,崩溃或丢失用户的进度。

  • 为了在Activity生命周期各个阶段之间导航转换,Activity类提供六个核心回调方法onCreate()、onStart()、onResume()、onPause()、onStop() 和 onDestroy()。当 Activity 进入新状态时,系统会调用其中每个回调方法。
i、Activity存在与否
  • Activity整个生命周期从onCreate()方法开始,到最终调用onDestroy()方法结束。对于Activity的全局资源在onCreate()方法中设置,最终在onDestroy()方法中进行资源回收。
ii、Activity可见与否

  • Activity触发onStart()方法后处于可见状态,但未必能与用户进行交互。当Activity完全不可见时,触发onStop()方法。重新可见时,先触发onRestart()方法,再触发onStart()方法。onStart()方法和onStop()方法可以被多次调用
iii、Activity可交互与否
  • Activity在onResume()方法和onPause()方法之间时处于活动状态,此时可以与用户进行交互。

b、Activity生命周期回调方法

i、onCreate()回调方法

onCreate 方法是 Activity 生命周期的第一个方法,即在 Activity 被创建时被调用。它的执行标志着 Activity 的启动过程中的第一个重要步骤,用于完成一些初始化设置和布局加载工作。

主要作用
设置布局:通过调用 setContentView 方法来加载指定的布局文件,将界面内容展示给用户。
初始化视图:通过 findViewById 等方法找到布局中的各种控件(如按钮、文本框等),并将其存储为类成员变量或局部变量。
绑定事件监听器:为界面上的各种控件(如按钮)设置监听器,以响应用户的交互动作。
获取数据:从 Intent 中获取启动 Activity 时传递过来的数据,或者通过其他方式初始化界面需要的数据。
进行其他初始化工作:根据应用程序的需求进行其他的初始化工作,例如设置默认值、创建数据库连接等。

ii、onStart()回调方法
  • onCreate() 退出后,Activity 将进入“已启动”状态,并对用户可见。此回调包含 Activity 进入前台与用户进行互动之前的最后准备工作。
iii、onResume()回调方法
  • 系统会在 Activity 开始与用户互动之前调用此回调。此时,该 Activity 位于 Activity 堆栈的顶部,并会捕获所有用户输入。应用的大部分核心功能都是在 onResume() 方法中实现的。
  • onResume() 回调后面总是跟着 onPause() 回调。
iv、onPause()回调方法

当 Activity 失去焦点并进入“已暂停”状态时,系统就会调用 onPause()。

例如,当用户点按“返回”或“最近使用的应用”按钮时,就会出现此状态。当系统为您的 Activity 调用 o

使用android studio 运行,下面是一个简单的文档,这个代码是一个demo 一、Activity的使用 1、SNActivity 框架最基本的activity,可调用$(SNManager)进行操作activity,具体用法请参考文档或代码 2、SNNavigationSlidingActivity 包含SNActivity的功能,继承于com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivity 支持导航条左滑视图的Activity 加载导航条: loadNavBar(int height,int background_color_id) loadNavBarResId(int height_id,int background_id) 加载左侧视图: /** * load left view * @param left_id left layout id * @param offset_value offset value * @param shadow_width_value shadow width value * @param shadow_drawable_id shadow drawable style * @param fade fade value */ loadLeft(int left_id, int offset_value, int shadow_width_value, int shadow_drawable_id, float fade) /** * load left view * @param left_id left layout id * @param offset_id offset id * @param shadow_width_id shadow width id * @param shadow_drawable_id shadow drawable id * @param fade fade value */ loadLeftResId(int left_id, int offset_id, int shadow_width_id, int shadow_drawable_id, float fade) 二、SNElement的使用 View的伪装对象,支持所有View的功能,详细功能可参考文档或代码 手动伪装:$.create $.id $.findView 注入伪装:$.setContent(view class or layout id,inject class); 获取原型:elem.toView(); 三、注入 1、视图注入 A、创建注入类,属性名称必须layout中的id对应,如果不对应请加入标签@SNInjectView class DemoInject{ @SNInjectView(id=R.id.tvTest) public SNElement test; } B、实例化注入对象 DemoInject di=new DemoInject(); C、调用$.inject或者$.setContent注入 $.inject(di); D、注入成功后即可调用对象 String text=di.test.text(); 2、依赖注入 A、需要绑定注入对象,建议写到Application中的onCreate SNBindInjectManager.instance().bind(ITest.class, Test.class); B、与视图注入不同的是属性必须添加标签@SNIOC,注入的对象(Test)必须包含只有一个SNManager参数的构造函数,且必须实现注入者 public class Test implements ITest{ SNManager $; public Test(SNManager _$){ this.$=_$; }; } class DemoInject{ @SNIOC public ITest test; } C、调用$.inject或者$.setContent注入 同视图注入 D、注入成功后即可调用对象 di.test.xxx(); 四、fragment的使用 1、SNFragment 2、SNLazyFragment 五、控件的使用 1、SNFragmentScrollable 2、SNPercentLinearLayout、SNPercentRelativeLayout 3、SNScrollable 4、SNSlipNavigation 5、XList 6、slidingtab
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜雨星辰487

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值