展开

关键词

Android 退出应用

前言 Android是个神奇的东西 当程序进入后台时 即使时application也会被销毁 如果application中保存着某些变量就会丢失 所以我们可以在application销毁时 退出应用Android中,Activity有个栈,一个Activity结束掉,会回到上一个Activity,并不是退出应用程序。 Android中,退出应用程序的方式有以下两种 通过pid int pid = android.os.Process.myPid();//获取当前应用程序的PID android.os.Process.killProcess (pid);//杀死当前进程 这种方法退出应用,是会保留某些后进程,例如:Service,Notifications等。 manager.killBackgroundProcesses(getPackageName()); //强制结束当前应用程序 这种方式退出应用,会结束本应用程序的一切活动,因为本方法会根据应用程序的包名杀死所有进程包括

50720

Android应用架构

来源: 小鄧子(@Rx小鄧子) Android开发生态圈的节奏非常之快。每周都会有新的工具诞生,类库的更新,博客的发表以及技术探讨。 如果你外出度假一个月,当你回来的时候可能已经发布了新版本的Support Library或者Play Services 我与Ribot Team一起做Android应用已经超过三年了。 这段时间,我们所构建的Android应用架构和技术也在不断地演变。本文将向您阐述我们的经验,错误以及架构变化背后的原因。 想象一个简单且常见的场景,应用需要加载一个博客文章列表,然后缓存这些条目到SQLite数据库,最后将他们展示到ListView等列表视图上。 Android生态系统将保持快速发展的步伐,我们必须继续探索。不断地阅读和尝试,这样我们才能找到更好的方法来继续构建优秀的Android应用程序。

48870
  • 广告
    关闭

    【玩转 Cloud Studio】有奖调研征文,千元豪礼等你拿!

    想听听你玩转的独门秘籍,更有机械键盘、鹅厂公仔、CODING 定制公仔等你来拿!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    第一个Android应用Android应用界面开发

    Android应用界面开发 第一章学习 第二部分#### ---- 1.新建一个Android app 给项目取名First Application 主界面命名FirstAty,xml文件命名就自动使用 > <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com 如上,一行居中置顶的文字便显示在应用内。 ---- 2.新建一个开启App后自动消失的首页 新建一个Activity,就命名为StarAty吧,xml也自动命名。 安装,重启 此插件提供以下功能: ADB Uninstall App:卸载应用 ADB Kill App:结束应用进程 ADB Start App:启动应用 ADB Restart App:重启应用 ADB Clear App Data:清除应用数据 ADB Clear App Data and Restart:清除应用数据并且重启应用 在代码界面,使用ctr+shift+A启动搜索功能,

    36920

    Android 应用架构演变

    Android 应用架构演变 原始架构 Android刚开始的时候没有第三方库,基本方式就是AsyncTask 和Handler配合使用,简单直接没有过多分层设计 ? MVP Google对Android APP开发第一次结构设计的尝试 ? 缺点 仅仅是一种编程方式,对Android而言,没有生命周期概念,需要自己维护管理 agera(Reactive Programming for Android) Google实现的类似RxJava的函数式编程 优点 结构少容易理解每层的目的 缺点 刚推出还没被大面积使用 总结 原始架构 MVC MVP MVVM这四种架构方式对Android APP来说都是项目结构采用一种方式后基本架构就不会改变。 RxJava agera仅仅是一种编程方式的改变,但这种方式对手机应用开发来说非常合适,鉴于以上架构的演变,原始架构基本不会有人再使用了,MVC在移动端也是不太适合,MVP MVVM都是Google自家推出的

    56920

    Android应用权限检查

    背景 现在应用市场的要求越来越高了,而且随着Android版本的升级,官方对于权限这部分的管控越来越严格,因此我们秉着最少可用原则,绝不向用户申请额外的权限,但由于团队规模越来越大,很难保证某个模块没有新增权限 ,所以我们需要一个工具可以简单的给出每个版本应用的权限变化信息。 方案 这里我是用Android SDK自带的aapt工具来获取应用的manifest文件信息的,有时候明明你已经配置好Android的开发环境了但还是报“Unable to find executable for: aapt” 这个错误,这时候首先看看自己Android SDK目录下的build-tools下有没有aapt可执行文件,如果没有建议下载26.0.0的版本,然后再把路径加到环境变量中。

    28430

    Android应用ANR分析

    概述 当Android应用的UI线程被阻塞太久时,就会触发一个”Application Not Responding“(ANR)错误。 可以在Application、Activity或者其他应用组件进行配置: public void onCreate() { if (DEVELOPER_MODE) { StrictMode.setThreadPolicy TraceView 使用Traceview去跟踪正在运行的应用,并定位主线程忙碌的位置。 分析traces日志文件 当发生ANR,Android系统会存储日志文件。 HandlerThread,要通过 Process.setThreadPriority()并传递 THREAD_PRIORITY_BACKGROUND来设置线程的优先级为”background“,不然这个线程仍然会使得你的应用显得卡顿 /performance/perf-anr/index.html [Android应用ANR分析]https://www.jianshu.com/p/30c1a5ad63a3 [StrictMode]https

    43540

    Android应用ANR分析

    概述 当Android应用的UI线程被阻塞太久时,就会触发一个”Application Not Responding“(ANR)错误。 可以在Application、Activity或者其他应用组件进行配置: public void onCreate() { if (DEVELOPER_MODE) { StrictMode.setThreadPolicy TraceView 使用Traceview去跟踪正在运行的应用,并定位主线程忙碌的位置。 分析traces日志文件 当发生ANR,Android系统会存储日志文件。 HandlerThread,要通过 Process.setThreadPriority()并传递 THREAD_PRIORITY_BACKGROUND来设置线程的优先级为”background“,不然这个线程仍然会使得你的应用显得卡顿 /performance/perf-anr/index.html [Android应用ANR分析]https://www.jianshu.com/p/30c1a5ad63a3 [StrictMode]https

    67820

    Android 教程 签署应用

    文件存储在以下位置: ~/.android/(OS X 和 Linux) C:\Documents and Settings\<user>\.android\ (Windows XP) C:\Users \<user>\.android\(Windows Vista,Windows 7、8 和 10) 当您下次构建和运行调试构建类型时,这些构建工具将重新生成新的密钥库和调试密钥。 请注意,您必须运行应用,单纯的构建不会重新生成密钥库和调试密钥 字段说明 创建 key (密钥库是一个二进制文件,它包含一组私钥。您必须将密钥库存放在安全可靠的地方。) password: stcy123456 创建私钥代表将通过应用识别的实体,如某个人或某家公司。 key alias: badrobot key password: stcy123456

    6810

    Android 绿色应用公约

    Android 绿色应用公约(草案) 宗旨 这是一项旨在推动Android生态中的优秀应用共同维护一个更加良性的『设备体验』而发起的开放公约。 由于Android系统的设备体验是由设备本身的软硬件及安装在设备中的众多应用所共同影响的,后者的影响往往随着安装的应用数量增长而迅速扩大。这种由应用所造成的外溢性影响,存在着典型的『公地悲剧』。 安装的众多应用中,某一个应用对于设备体验的损害往往很难被用户直接辨识,以至设备体验问题长期得不到应用开发团队的足够重视。造成的后果间接的由全部应用,乃至整个Android生态共同承担。 核心原则 此公约的核心原则完全遵照Android本身的演进方向(包括Android O所引入的新变化),积极引导和协助应用开发团队平滑完成对接Android最新变化的节奏,在确保应用核心功能不受影响的前提下 2,上架Google Play应用市场 Google Play应用市场(以下简称Google Play)是Android生态中全球最大的应用分发渠道,在除中国大陆地区外发售的绝大部分Android手机中是预装的唯一应用市场

    58960

    Android应用流程简介

    我们知道Android系统的启动是从Init.c开始 那么Android应用的启动过程是从哪里开始呢? 下面是具体的时序图参考: ? 从Launcher.java开始 由于虚拟机的特性每个应用都会独占一个进程,ActivityThead是应用启动的标志

    12830

    Android多媒体应用

    MediaPlayer player = MediaPlayer.create(this,Uri.parse(“http://”)); 如果要访问网络中的资源,要有网络访问权限 <uses-permission android :name="android.permission.INTERNET"/> 或者用无参构造函数 MediaPlayer player = new MediaPlayer(); player.setDataSource --keepScreenOn是否打开屏幕--> <SurfaceView android:id="@+id/surfaceView1" android:keepScreenOn ="true" android:layout_gravity="center" android:layout_width="300sp" android:layout_height

    29020

    Android Fragment应用实战

    现在Fragment的应用真的是越来越广泛了,之前Android在3.0版本加入Fragment的时候,主要是为了解决Android Pad屏幕比较大,空间不能充分利用的问题,但现在即使只是在手机上,也有很多的场景可以运用到 Fragment了,今天我们就来学习其中一个特别棒的应用技巧。 很多手机应用都会有一个非常类似的功能,即屏幕的下方显示一行Tab标签选项,点击不同的标签就可以切换到不同的界面,如以下几个应用所示: ? ? ? 上面三个应用从左到右分别是QQ、新浪微博和支付宝钱包,可见,这种底部标签式的布局策略真的非常常见。 那么话说回来,这种效果到底是如何的呢? apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android

    505100

    Android应用签名获取

    19030

    Android 优化——应用瘦身

    Android 优化目录 ---- 图片资源处理 不要有大于 1MB 的图片,若有需要压缩 PNG 有透明通道,无损压缩,可以硬件加速,但对于一些不会有透明度的大图,比如引导图,背景图仍然可以选择用 WebP 格式图片 图片压缩 无损 ImageOptim 有损 ImageAlpha,TinyPNG PNG/JPEG 转 WebP,智图,iSparta 4.0 以下通过第三方库 webp-android-backprot 获得支持 使用 Android Lint 分析去除无用资源 Analyze - Run Inspection by Name - 输入 Unused resource 开启 minifyEnabled

    27811

    Android 应用保存状态

    Android 应用保存状态 最近开发的 Android 应用中需要添加保存用户状态的功能, 经过查阅 Android 的文档, 保存用户状态的几种方法如下: 1、 使用 Bundle 保存界面状态 Android onSaveInstanceState 保存状态 当系统销毁 Android 程序, 进行内存回收时, 会调用 Activity 的 onSaveInstanceState 方法, 传入一个 Bundle onRestoreInstanceState 方法之前应用就被结束了, 大家都喜欢装杀进程的软件, 应用程序总免不了被结束的命运, 所以这种方法不是很可靠的。 2、 使用 SharedPreference 保存状态 Android 推荐在 onPause 方法中使用 SharedPreference 保存状态是比较可靠的, 因为 SharedPreference 保存用户状态建议积极一些, 不要总是等待系统调用 onPause 方法, 只要用户操作了界面, 就可以进行状态保存, 这样会让应用更加可靠一些。

    36320

    Android开发环境搭建Android应用界面开发

    Android应用界面开发 第一章学习 第一部分#### ---- 1.Java环境搭建: Jdk下载: http://www.oracle.com/technetwork/java qq-pf-to=pcqq.group ---- 2.Android studio的安装使用 使用“Lantern”(免费访问外国网站神器) https://developer.android.com 下完后一系列安装,选择Android SDK的安装目录,此处需要记住。 大致上应该是:C:\Users\用户名\AppData\Local\Android\Sdk 安卓SDK 根据上表,可以了解SDK的文件结构,一开始我也下载了大约36GB的文件,然后根据表中 好吧,一开始我自己就是误打误撞用Android Studio开发Java…………还是问了别人,才知道IntelliJ IDEA………………这是另外一回儿事了

    35020

    Android 应用适配 Android 7.0 权限要求详解

    对于 Android 6.0 以下 , 对于 Android 应用的权限要求是在安装应用的时候默认直接获取;但是对于 Android 6.0 以及以上,对于应用权限的获取具有更高的要求。 应用只有获取到了相关权限才可以正常运行,相反如果用户没有赋予相关权限则应用直接退出甚至崩溃,无法进行正常的运行。 PackageManager.PERMISSION_GRANTED && grantResults[2] == PackageManager.PERMISSION_GRANTED) { System.out.println("应用权限获取成功 "); } else { System.out.println("应用权限获取失败"); } } else { super.onRequestPermissionsResult(requestCode, permissions, grantResults); } } } 以上这篇Android 应用适配 Android 7.0 权限要求详解就是小编分享给大家的全部内容了,希望能给大家一个参考。

    37610

    android的AsyncTask的应用

    ="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:attr/progressBarStyleHorizontal" android:layout_width="match_parent" android: ; import android.os.AsyncTask; import android.os.Bundle; import android.widget.ProgressBar; import android.widget.TextView > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LinearLayout1 ; import android.os.AsyncTask; import android.os.Bundle; import android.view.View; import android.widget.AdapterView

    21330

    android Fragment 的简单应用

    可以让所有的android 系统版本保持功能一致性,如果说你使用的是系统内置低的Fragment,那么4.2之前的设备运行就会奔溃,虽然说现在基本找不到4.2之前的设备。。。

    8220

    扫码关注腾讯云开发者

    领取腾讯云代金券