Application

Android之Activity生命周期讲解

拜拜、爱过 提交于 2021-01-30 13:46:47
Activity生命周期 维护一个 Activity 的生命周期非常重要,因为 Activity 随时会被系统回收掉。 生命周期: 现在使用者使用智慧型手机,大多已习惯使用多工 (Multi-Task) 的操作系统 ( 如 Window sMobile),可以在用手机听音乐的同时,也执行其他多个程序。同时执行多个程序有它的明显好处,但是也有它的严重的缺点。每多执行一个应用程序,就会多耗费一些系统记忆体 。而手机里的记忆体是相当有限的。当同时执行的程序过多,或是关闭的程序没有正确释放掉记忆体,执行系统时就会觉得越来越慢,甚至不 稳定。为了解决这个问题, Android 引入了一个新的机制 -- 生命周期 (LifeCycle) 。 行程: 应用程序(一个个Activity )执行的状态称为行程(process) 。在 Android 操作系统 中 ,每个应用程序都是一个行程。 Android 系统平台 ( 准确的说是 Dalvik 虚拟机 ) 会维护一个唯一的 Activity 历史记录堆叠,并从旁观察每个应用程序行程。系统平台会依照系统的记 忆体状况,与 Activity 的使用状态,来管理记忆体的使用。Activity 类别除了负责运行程序流程,与操作界面元件之外,最重要的,就是它提供 了开发者控制行程生命周期的函式。我们已经相当习惯在 OnCreate (建立行程时的行为 )

Tiny之Web工程构建

拟墨画扇 提交于 2020-12-08 07:47:12
友情提醒: 阅读此文需要java、Maven环境搭建技能,关于java开发环境及maven环境搭建请咨询谷哥和度娘 。 搭建TinyWeb工程环境 搭建一下TinyWeb的开发环境,是非常简单的 如果你没有下载过Tiny框架,请在命令行中输入下面的命令: mvn archetype:generate -DarchetypeGroupId=org.tinygroup -DarchetypeArtifactId=webappproject -DarchetypeVersion=0.0.13-SNAPSHOT -DgroupId=org.tinygroup -DartifactId=webhello -Dversion=1.0-SNAPSHOT 中间会让你确认一下输入是否正确,回答Y即可,运行完毕之后,就会在当前目录中生成一个webhello的目录,里面包含了tiny的web工程目录。 如果你已经在本地安装过tiny框架,那么请在命令行中简单输入下面的命令: mvn archetype:generate -DarchetypeCatalog=local 这时会显示一个菜单,如下: D:\studytiny>mvn archetype:generate -DarchetypeCatalog=local D:\studytiny>set MAVEN_OPTS= -Xms2560m

IO

时光怂恿深爱的人放手 提交于 2020-04-07 08:39:32
当你发现自己最受欢迎的一篇blog其实大错特错时,这绝对不是一件让人愉悦的事。 《 IO - 同步,异步,阻塞,非阻塞 》是我在开始学习epoll和libevent的时候写的,主要的思路来自于文中的那篇 link 。写完之后发现很多人都很喜欢,我还是非常开心的,也说明这个问题确实困扰了很多人。随着学习的深入,渐渐的感觉原来的理解有些偏差,但是还是没引起自己的重视,觉着都是一些小错误,无伤大雅。直到有位博友问了一个问题,我重新查阅了一些更权威的资料,才发现原来的文章中有很大的理论错误。我不知道有多少人已经看过这篇blog并受到了我的误导,鄙人在此表示抱歉。俺以后写技术blog会更加严谨的。 一度想把原文删了,最后还是没舍得。毕竟每篇blog都花费了不少心血,另外放在那里也可以引以为戒。所以这里新补一篇。算是亡羊补牢吧。 言归正传。 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不相同。所以,为了更好的回答这个问题,我先限定一下本文的上下文

获取使用当前API的应用程序名称

天大地大妈咪最大 提交于 2020-03-09 11:09:48
开发手机安全管家的时候,比如要打电话,或者照相需要知道是哪个应用程序在调用,就可以在API接口中调用下面的代码。 比如要获取打开摄像头的应用程序名称,只需要在frameworks/base/core/android/hardware/Camera.java中open()方法中加上如下代码就可以了。 Application application = ActivityThread.currentApplication(); if (application != null) { String packageName = application.getPackageName(); try { ApplicationInfo packageInfo= application.getPackageManager().getApplicationInfo(packageName,PackageManager.GET_META_DATA); String appName = application.getPackageManager().getApplicationLabel(packageInfo).toString(); } catch (Exception e) { e.printStackTrack(); } ApplicationLabel就是应用程序名称

page request session application作用域(转)

一笑奈何 提交于 2020-03-02 11:27:23
几乎所有的Web开发语言都支持Session功能,Servlet也不例外。Servlet/JSP中的Session功能就是通过 作用域(scope) 这个概念来实现的。 作用域分为四种,分别为: Page:在当前页面有效(仅用于JSP中) Request:在当前请求中有效 Session:在当前会话中有效 Application:在所有应用程序中有效 是不是看不太明白?page因为仅用于JSP中,这里只讲述其他三种作用域。首先要声明的一点,所谓“作用域”就是“ 信息共享的范围 ”,也就是说一个信息能够在多大的范围内有效。 话说武松一日来到景阳岗,见一旗帜迎风飘扬,旗子上书五个大字“三碗不过岗”。武松叫道:“店家,拿三碗酒来,再切两斤熟牛肉!”店小二应声道:“三碗好酒,二斤熟牛肉啰~~”里面厨师赶忙当当当当切好牛肉,店小二倒上三碗酒,店小二端上前来。 武松咕咚咕咚连干三碗,叫一声“好酒!店家,再来三碗!”小二忙又倒上三碗好酒,武松一饮而尽。就这样前前后后武松一共喝了十八大腕。付了帐刚要走,店小二道: “客官,这前面山上有大虫,客官刚刚喝完十八碗酒恐怕过不得岗,不如在小店暂住一夜,待明天和猎户一同过岗岂不是好?” 之后武松说什么就留待各位看官自己去回忆啦。在这段武松打虎中,大家有没有看到些熟悉的东西? · 武松: 浏览器。 · 酒馆: 服务器。 · 店小二、厨师:

Android应用层源码阅读笔记--Application

谁说我不能喝 提交于 2019-12-07 03:47:09
Android应用层源码阅读笔记--Application 导言 在这个年头,问到看过android 源码没?必定问的就是你是否看过android linux层的代码,你说没看过,都貌似不好意思说自己学过android的.我就想了,android linux层的代码对于一个没搞过linux,c/ c++的人来说,对于一个从c#,java,python,js 转过来学android的人来说对于他们有啥意义?难道我会用 gcc 编译一段 c语言,然后在内核上打上一个patch实现一个关机闹钟才是真正的会android ?能力有限,就做下应用层的源码笔记. 一个程序的开始---Application 什么?一个程序的开始是activity?好吧,不跟你争论,咱们来看下源代码是怎么处理. Application 的源码传送门 https://github.com/android/platform frameworks base/blob/master/core/java/android/app/Application.java Applcation 这个可以说的上是我们android 应用程序的开始,不管你之前知不知道这个类,它都默默的完成了android程序的初始化工作...接着就开始了我们的activity. 源码还是很好懂的:private ArrayList

Android Application的作用

左心房为你撑大大i 提交于 2019-12-05 21:00:29
学习android挺长时间了,但是对于Appliction还不是很了解。今天花一些时间研究了一下Application。 What is Application Application和Actovotu,Service一样是android框架的一个系统组件,当android程序启动时系统会创建一个 application对象,用来存储系统的一些信息。通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,如果需要创建自己 的Application,也很简单创建一个类继承 Application并在manifest的application标签中进行注册(只需要给Application标签增加个name属性把自己的 Application的名字定入即可)。 android系统会为每个程序运行时创建一个Application类的对象且仅创建一个,所以Application可以说是单例 (singleton)模式的一个类.且application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期。因为它是全局 的单例的,所以在不同的Activity,Service中获得的对象都是同一个对象。所以通过Application来进行一些,数据传递,数据共享 等,数据缓存等操作。 Data passing between components using

PhoneGap 与 Application Cache应用缓存

本小妞迷上赌 提交于 2019-12-05 13:23:27
一个想法 在研究 PhoneGap 的时候一直在想一个问题,怎么提高移动网络下的网络性能?特别是静态文件,多次加载完全是浪费。 HTTP 协议中控制缓存也比较纠结,总会有个 304 请求,而且各种协议,各种 HTTP header,都不统一。而且 304 实际上也是进行了一次 HTTP 请求的。 因为用的是 PhoneGap,可以用 Navtive Code 来进行扩展,所以想到一个点子,是否能有一个静态文件升级功能?远程有一个文件标记着静态文件包的最新版本,如果有更新,这个插件就自动把静态文件下载到本地。然后 PhoneGap 打开的页面使用本地缓存的静态文件即可。完全不需要任何请求! HTML Application Cache 正当我纠结怎么实现的时候,发现了 HTML5 种已经有类似的东西了,而且实现的功能和我的需求一模一样。因为它就是为离线 应用 设计的。 离线访问对基于网络的应用而言越来越重要。虽然所有浏览器都有缓存机制,但它们并不可靠,也不一定总能起到预期的作用。HTML5 使用 ApplicationCache 接口解决了由离线带来的部分难题。 使用缓存接口可为您的应用带来以下三个优势: 离线浏览 – 用户可在离线时浏览您的完整网站 速度 – 缓存资源为本地资源,因此加载速度较快。 服务器负载更少 – 浏览器只会从发生了更改的服务器下载资源。 应用缓存(又称

Android xml application属性详解

做~自己de王妃 提交于 2019-11-29 09:23:45
例子: <application android:allowClearUserData=["true" | "false"] android:allowTaskReparenting=["true" | "false"] android:backupAgent="string" android:debuggable=["true" | "false"] android:description="string resource" android:enabled=["true" | "false"] android:hasCode=["true" | "false"] android:icon="drawable resource" android:killAfterRestore=["true" | "false"] android:label="string resource" android:manageSpaceActivity="string" android:name="string" android:permission="string" android:persistent=["true" | "false"] android:process="string" android:restoreAnyVersion=["true" | "false"] android