App包名和类名的查看由 App Inventor 2 创建的应用要弄清包名和类名,可通过下载其应用程序的源代码,然后使用文件资源管理器或解压缩程序解压 .aia源文件(文件的扩展名修改成.zip 或. 如果要更方便和直观的在手机上查看安装的APP的包名和类名,可以在手机上安装专门的查看应用包名的App,如“包名查看器”:不同品牌手机可能略有不同另外,利用Activity启动器调用系统某些功能时,不同品牌手机可能略有不同 下面代码是利用 Activity启动器启动华为 Mate8 系统的照相机:如果在使用Activity启动器启动其它应用的时候,如果出现启动不了或者找不到相应的 Activity 的情况,请检查包名、类名这些信息是否正确
starter启动原理 自定义Starter步骤 首先创建一个空项目 在空项目创建两个模块,一个启动器模块,一个自动配置模块 项目配置 1:配置启动器依赖(启动器配置文件里面添加对自动配置模块项目的依赖 ) 2:配置自动配置模块项目依赖 3.编写自动配置模块里的业务逻辑 4. :XXX-spring-boot-starter 如:hello-spring-boot-starter 2:自动配置模块 dhy-hello-spring-boot-starter-autoconfigurer artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies> ---- 2: 启动器) (如果你的启动器是给开发组用的,最好把 配置模块项目 和 启动器 项目 安装到相应的maven私服仓库就行,这样别的项目引用直接引用启动器就可以了) ---- 6.测试使用 只需要在springboot
standard.gif 依次打开Activity1、2、2、1、2 E/TASK_ID: Activity1 Task id is 89 E/TASK_ID: Activity2 Task id singleTop.gif 依次打开Activity1、2、2、1、2 E/TASK_ID: Activity1 Task id is 82 E/TASK_ID: Activity2 Task id is singleTask.gif 依次打开Activity1、2、2、1、2 E/TASK_ID: Activity1 Task id is 94 E/TASK_ID: Activity2 Task id : Activity1 销毁 可见第二次打开Activity2时并无变化,第三次打开Activity2,Activity1销毁 ? singleInstance.gif 依次打开Activity1、2、2、1、2 E/TASK_ID: Activity1 Task id is 115 E/TASK_ID: Activity2 Task
2、怎么使用活动(Activity) 定义Activity: 1 public class MainActivity extends Activity { 2 3 @Override 4 1 <activity 2 android:name=".SecondActivity" 3 android:label="@string/title_activity_second 1 button2.setOnClickListener(new OnClickListener() { 2 3 @Override 4 2.Activity没被杀死,onCreate不会被调用,但onRestoreInstanceState 仍然会被调用,在 onResume之前恢复上次保存的信息。 注意:设置活动的启动方式是在AndroidManifest.xml文件中注册活动时,添加android:launchMode="singleTask"语句指明启动模式 1 <activity 2
如前所述,这些启动器可以引导应用程序,我们只需要在应用程序中包含正确的启动器,Spring Boot将确保所选启动器所需的所有依赖项都在类路径中。 目前,Spring Boot提供了大约50多个启动器,不包括第三方启动器。在接下来内容中,将介绍一些常用的启动器。 2 Web Starter 这是最常用的Spring Boot Starter之一,这个启动器将确保创建Spring Web应用程序(包括REST)所需的所有依赖项都包含在您的类路径中,它还将添加 <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>com.h2database </groupId> <artifactId>h2</artifactId> </dependency> Spring JPA Starter为H2,Derby和Hsqldb提供自动支持
构建springboot项目及启动器的讲解 使用maven构建springboot项目 create a simple project 填写GroupID,ArtifactID,Packageing: org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> Springboot启动器
他来真正管理Spring Boot应用里面的所有依赖版本 Spring Boot的版本仲裁中心; 以后我们导入依赖默认是不需要写版本;(没有在dependencies里面管理的依赖自然需要声明版本号) 2. </dependency> </dependencies> spring-boot-starter-web spring-boot-starter:spring boot场景启动器 ;帮我们导入了web模块正常运行所依赖的组件; Spring Boot将所有的功能场景都抽取出来;做成一个个的starters(启动器),只需要在项目里面引入这些starter相关场景的所有依赖都会导入进来 ,要用什么功能就导入什么场景的启动器。
调用启动器时,开发工具将该归档添加到用户类路径中。然而,这个扩大的用户类路径仅用于执行工具。 Java 启动器如何查找用户类 用户类是在 Java 平台上构建的类。查找用户类时,启动器需要使用用户类路径,它是一张目录、JAR 归档和包含类文件的 ZIP 归档的列表。 OldJava 启动器如何查找类 oldjava 启动器不支持 Java 扩展框架。 (有关这些问题的详细信息,参见 Windows 或 Solaris 的 java 启动器参考页。) oldjava 启动器在一个类路径中组合了自举类和用户类。 为了对已有代码提供临时支持,这一版本包括 oldjava 启动器,它使用 1.1 类加载模型。
) :为Activity创建新的任务栈,activity(需要创建任务栈的Activity),intent(用于跳转页面的Intent),description(描述信息),thumbnail(缩略图) getDeviceConfigurationInfo () :获取设备信息 getLauncherLargeIconSize () : 获取Launcher(启动器)图标大小 getMemoryInfo 到栈顶. * * @param activity 添加的activity */ public void pushActivity(Activity activity) { if (mActivityStack extends BaseActivity> klass) { for (Activity activity : mActivityStack) { if (activity ! /移除所有的Activity public void removeAll(){ for (Activity activity : mActivityStack) { if (activity !
plugin> </plugins> </build> </project> 首先看spring-boot-starter-parent,spring-boot-start就是场景启动器 springboot还有许多场景启动器,例如AOP、邮件开发等等。我们只需要在项目里面引用这些starter,这些场景的相关依赖包就会自动导入出来。
2、线上场景 当应用已经发布到线上,统计就变得不是那么容易了。 所以我们一般就通过函数插桩的方式,自己写一个统计耗时的工具类,部署到需要统计的地方,比如Application和Activity的生命周期,数据库的初始化,第三方库的初始化,然后最后上传数据到服务器即可 //构造方法,true为主线程执行 Task1=new Task("task1",true); Task2=new Task("task2",false); builder.add(Task2).after(Task1),所以这个after就代表Task2要在Task1后面执行,也就是Task2成了Task1的紧后任务。 Task4是Task2和Task3的紧后任务,所以在Task2执行完之后,还要判断Task3是否执行成功,然后才能执行Task4,这就是紧前任务列表的作用。
除了根Activity,其它Activity都会被清除出栈,可是假设在根Activity中设置了此属性之后。用户再次启动应用时,仍然可以看到上一次操作的界面。 假设没有找到对应的activity,则会在任务栈底部建立一个新的activity。 假设Activity已经存在则onNewIntent()一个新的Intent而不是建一个新的activity。 当离开该activity时它会是不可兼得,此时activity是否可以从堆栈中移除和finishi()。 android:process activity所在的进程名,通常不须要设置。 android:screenOrientation activity所显示的方向。
Flow Launcher Flow Launcher是一款.NET开源(MIT License)、免费、功能强大、方便实用的 Windows 文件搜索和应用程序启动器,能够帮助你快速查找文件、启动应用程序和执行系统操作 https://github.com/Flow-Launcher/Flow.Launcher 公众号详细介绍: https://mp.weixin.qq.com/s/WeDpUhAH4L7UksBjTG_2Ow CurvaLauncher 一款WPF开源(MIT License)、简单、轻便、快速的桌面启动器(支持多主题、多语言:简体中文、繁体中文、英文等)。
Runner启动器 如果你想在Spring Boot启动的时候运行一些特定的代码,你可以实现接口 ApplicationRunner或者 CommandLineRunner,这两个接口实现方式一样,它们都只提供了一个
最近在做菜单,有三个界面分别用activity来显示,如 Activity A -> Activity B -> Activity C,返回键Activity C -> Activity B -> Activity A,当从A进入到B时按返回键无法退到A,是因为在A进入B时用了finish()方法,把A给销毁了,如下: finish(); Intent aToB = new Intent
spring-boot-starter-tomcat 使用 Tomcat 作为嵌入式服务容器;作为默认嵌入式服务容器被spring-boot-starter-web使用 spring-boot-starter-log4j2 使用Log4j2记录日志;spring-boot-starter-logging的另一替代方案 记录与此,便于查询
在activity的布局中,线性布局和表格布局是最简单的,这次分别从线性布局,表格布局以及线性布局和表格混合布局做了实验,实验中只需要编写 相应的xml的代码,java代码不需要更改,因为我们这里只是练习 其中本实验用到的各控件的属性解释如下: android:layout_weight属性是指不同的控件在activity中占有体积大小的比例。 -- 线性布局中 android:layout_weight属性是指不同的控件在activity中占有体积大小的比例。 ="#ff0000" android:layout_weight="3" /> </LinearLayout> 表格布局: 表格布局有点类似表单的意思,可以在activity </TableRow> </TableLayout> </LinearLayout> </LinearLayout> 实验总结: 通过本次实验对activity
<category android:name="com.skymxc.catagory.c1" /> <category android:name="com.skymxc.catagory.c<em>2</em>" <category android:name="com.skymxc.catagory.c1" /> <category android:name="com.skymxc.catagory.c<em>2</em>" = new Intent(); ////要执行的动作的描述 所有的action中 有一个匹配行 in.setAction("com.skymxc.action.x2"); //附加信息的描述 这里的描述只要在 中声明了就能匹配上, // 如果有一项未声明则匹配不上,如果intentFilter中没有可以不添加,会使用默认的category in.addCategory("com.skymxc.catagory.c2" 当前activity1跳往到activity2 ,activity就会把activity1覆盖,这时就调用了此方法 onRestart(); 重新启动 onDestroy():activity再结束前调用的最后一个方法
当我们新打开 Activity 或者按返回时,会导致 Activity 的入栈/出栈。 ? ="singleTask" android:taskAffinity="top.shixinzhang.task2"/> 设备主屏幕是大多数 Task 的起点。 当用户触摸应用启动器中的图标(或主屏幕上的快捷方式)时,该应用的 Task 将出现在前台。 如果用户稍后通过选择开始任务的启动器图标来恢复任务,则该 Task 将出现在前台并恢复执行堆栈顶部的 Activity。 注意: 后台可以同时运行多个任务。 2.singleTop:栈顶复用模式 如果位于栈顶则不会重复创建,不调用 onCreate 和 onStart,直接调用 onNewIntent() 方法 ?
文章目录 一、activity的生命周期 1、activity的四种状态 2、activity的生命周期 3、activity的进程优先级 二、android的任务栈 三、activity的启动模式 四 stopped:完全被其他的activity覆盖看不见,成员变量都还在,但是若内存紧张,将会优先被系统回收 killed:被系统回收了,所保留的信息和成员变量已经不存在了 2、activity的生命周期 重新启动才调,由不可见状态变为可见状态的时候会调用 onDestory(): 做一些资源释放 3、activity的进程优先级 前台:可交互的activity 或者 在前台activity绑定的service 的启动模式 1、standard:每创建一个activity就会加到栈中,不复用 2、singleTop(栈顶复用):创建的activity是在栈顶的话,就会复用 3、singleTask(栈内复用 四、scheme跳转协议 使用场景:1、服务端下发的跳转 2、H5跳转activity 3、app根据scheme跳转到另一个app