一般来说Application的onCreate方法只会执行一次, 如果应用中采用多进程方式,oncreate方法会执行多次,根据不同的进程名字进行不同的初始化, 就是在application中多添加几个if else String processName = OsUtils.getProcessName(this, android.os.Process.myPid()); if (processName != null) { boolean defaultProcess = processNa…
String processName = OsUtils.getProcessName(this, android.os.Process.myPid()); if (processName != null) { boolean defaultProcess = processName.equals(Constants.REAL_PACKAGE_NAME); if (defaultProcess) { initAppForMainProcess(); } else if (processName.…
android中全局异常捕捉 只要写代码就会有bug,但是我们要想办法收集到客户的bug.有第三方bugly或者友盟等可以收集.但是,android原生就提供了有关收集异常的api,所以我们来学习一下. 异常捕捉实现 android中提供了Thread.UncaughtExceptionHandler类 1.创建Thread.UncaughtExceptionHandler对象 创建对象,实现uncaughtException方法,此方法可以接收到所有异常,要做的就是对异常进行处理. 一般是对错…
1.简介 如果想在整个应用中使用全局变量,在java中一般是使用静态变量,public类型:而在android中如果使用这样的全局变量就不符合Android的框架架构,但是可以使用一种更优雅的方式就是使用Application context. 首先需要重写Application,主要重写里面的onCreate方法,就是创建的时候,初始化变量的值.然后在整个应用中的各个文件中就可以对该变量进行操作了. 启动Application时,系统会创建一个PID,即进程ID,所有的Activity就会在此…
1. 简介 如果想在整个应用中使用全局变量,在java中一般是使用静态变量,public类型:而在android中如果使用这样的全局变量就不符合Android的框架架构,但是可以使用一种更优雅的方式就是使用Application context. 首先需要重写Application,主要重写里面的onCreate方法,就是创建的时候,初始化变量的值.然后在整个应用中的各个文件中就可以对该变量进行操作了. 启动Application时,系统会创建一个PID,即进程ID,所有的Activity就会在…
今天在手机上调试运行Andorid项目时,发现Console打印出"WARNING: Application does not specify an API level requirement!"这样的警告信息,如下图所示: 虽然不影响项目的正常运行,不过还是要找出原因,上网查了一下出现警告的原因,原来是创建项目时AndroidManifest.xml文件中没有指定Min SDK Version 解决办法:修改AndroidManifest.xml文件,在<manifest>…
在Android中需要经常对用户手势进行判断,在判断手势时需要精细的分清楚每个触摸事件以及每个View对事件的接收情况,在View,ViewGroup,Activity中都可以接收事件,在对事件进行处理时onInterceptTouchEvent.dispatchTouchEvent及onTouchEvent这三个函数的调用顺序及关系需要好好理清楚.原理代码有点多,如果不对着具体事例,理解起来很难.下面对着代码进行分析.代码地址为:https://github.com/huangtianyu/D…
Application类 每次应用程序运行时,应用程序的Application类都保持实例化状态(都会持有该Application实例).与Activity不同的是,配置改变并不会导致应用程序重启.在应用程序内部,通过扩展Application类,可以完成以下三项工作: 1. 对Android运行时(接收到)广播的应用程序级别事件(如低内存事件广播)作出相应: 2. 在应用程序组件之间传递对象(应用程序内部的多个Activity之间,或其他组件之间): 3. 管理和维护多个应用程序组件使用的资源…
在android开发过程中,我们可能存储一些全局的变量,最好在正在app的任何一个activity或者service中都可以访问到,这时我们可以使用application. 我们的一个应用就叫application,那么应该很好理解一个应用里面只会存在一个单例的application,也不难想到用这个在存储全局变量,那么到底是怎么存储呢? 首先,我们创建一个Application,继承android.app.Application: ? 1 2 3 4 5 6 7 8 9 10 11 12 13…
原文同一时候发表在我的博客 点我进入还能看到很多其它 需求背景 近期接到这样一个需求,须要和别的 App 进行联动交互,比方下载器 App 和桌面 App 进行联动.桌面的 App 能直接显示下载器 App 内的下载任务进度和状态. 寻找解决方式 从需求上知道了,主要问题在怎样解决跨进程的通信上边. AIDL AIDL 即 Android Interface Definition Language的缩写,是专为 Android 中跨进程通信接口的描写叙述语言.优缺点非常明显,长处是稳定,快.An…
在做百度地图的时候 javascript 有个地图缩放的事件 但是在android 的API里面却没有,但是还好  官方给了一个MapStatusChangeListener,是这样介绍的 百度地图SDK为开发者提供了地图事件监听的方法MKMapViewListener,开发者通过此接口,可完成以下几种事件的监听:地图加载完成时,地图移动完成时.点击到地图可点标注时.动画结束时和截图成功后. 感觉有戏,稍微做下修改   具体思路是 在class 中记录 zoom 的初始值 之后在这个事件里检测这…
执行多次原因是因为每显示一个VIew,它都去测量view的高度,执行measure方法,导致getView执行多次. 解决方法是将 ListView 的 layout_width 设置为 fill_parent, <ListView android:id="@+id/lv_messages" android:layout_width="fill_parent" android:layout_height="fill_parent" andr…
一.前言 之前已经写了一个爆破签名校验的工具kstools,很多同学也在使用,但是也反馈了不少问题,之前一篇文章也介绍了,关于爆破之后第三方登录问题修复,这篇我们在综合说明一下一些后遗症问题,关于kstools工具说明以及工具的原理,可以看这篇文章说明:Android中自动爆破签名工具kstools说明. 二.样本分析 下面开始进入正题吧,关于有些同学反馈,使用该kstools爆破某app之后,出现无限制重启问题,关于这个问题,我没见过,很好奇就是尝试了这个样本案例: 看到了,的确是这样的,无限…
Binder 是 Android 系统中非常重要的组成部分.Android 系统中的许多功能建立在 Binder 机制之上.在这篇文章中,我们会对 Android 中的 Binder 在系统架构中的作用进行分析:然后,我们会从底层的实现角度简要说明为什么 Android 要开发出一套独立的跨进程通信机制:最后,我们会给出一个 AIDL 的使用示例来说明如何使用 Binder 来进行通信. 1.什么是 Binder? 为什么说它对 Android 系统至关重要? "什么是 Binder? 为什么说…
在目前的软硬件环境下,Native App与Web App在用户体验上有着明显的优势,但在实际项目中有些会因为业务的频繁变更而频繁的升级客户端,造成较差的用户体验,而这也恰恰是Web App的优势.本文对网上Android动态加载jar的资料进行梳理和实践在这里与大家一起分享,试图改善频繁升级这一弊病. Android应用开发在一般情况下,常规的开发方式和代码架构就能满足我们的普通需求.但是有些特殊问题,常常引发我们进一步的沉思.我们从沉思中产生顿悟,从而产生新的技术形式.如何开发一个可以自定义…
Android中JNI的作用,就是让Java可以去调用由C/C++实现的代码,为了实现这个功能.须要用到Anrdoid提供的NDK工具包,在这里不讲怎样配置了,好麻烦,配置了好久. . . 本质上,Java去调用C/C++的代码事实上就是去调用C/C++提供的方法.所以,第一步,我们要创建一个类,而且定义一个Native方法.例如以下: JniTest类: public class JniTest { public native String getTestString(); } 能够看到,在这…
from: http://blog.csdn.net/thl789/article/details/7887968 本文从开发AppWidgetProvider角度出发,看一个AppWidgetPrvodier在整个AppWidget体系中所扮演的角色.分析了AppWidgetProvider如何被AppWidget系统所识别:AppWidgetProvider何时/如何通过RemoteViews提供并更新数据:如何响应通过RemoteViews提供的PendingIntent的按钮点击操作.…
当android程序启动时系统会创建一个 application对象,用来存储系统的一些信息.通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,如果需要创建自己 的Application,也很简单创建一个类继承 Application并在manifest的application标签中进行注册(只需要给Application标签增加个name属性把自己的 Application的名字定入即可). android系统会为每个程序运行时创建一个Application类的对象且…
原文链接:http://www.cnblogs.com/renqingping/archive/2012/10/24/Application.html Application类 Application和Activity,Service一样是Android框架的一个系统组件,当Android程序启动时系统会创建一个Application对象,用来存储系统的一些信息. Android系统自动会为每个程序运行时创建一个Application类的对象且只创建一个,所以Application可以说是单例(…
转自:http://www.cnblogs.com/renqingping/archive/2012/10/24/Application.html Application类 Application和Activity,Service一样是Android框架的一个系统组件,当Android程序启动时系统会创建一个Application对象,用来存储系统的一些信息. Android系统自动会为每个程序运行时创建一个Application类的对象且只创建一个,所以Application可以说是单例(si…
大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象,开发者个人不可能购买所有设备逐个调试,所以在程序发布出去之后,如果出现了崩溃现象,开发者应该及时获取在该设备上导致崩溃的信息,这对于下一个版本的bug修复帮助极大,所以今天就来介绍一下如何在程序崩溃的情况下收集相关的设备参数信息和具体的异常信息,并发送这些信息到服务器供开发者分析和调试程序. 我们先建立一个crash项目,项目结构如图: 在MainActivity.ja…
Application类 Application和Activity,Service一样是Android框架的一个系统组件,当Android程序启动时系统会创建一个Application对象,用来存储系统的一些信息. Android系统自动会为每个程序运行时创建一个Application类的对象且只创建一个,所以Application可以说是单例(singleton)模式的一个类. 通常我们是不需要指定一个Application的,系统会自动帮我们创建,如果需要创建自己的Application,那…
在最近的Android项目中,有些代码需要从程序的运行周期开始一直到运行周期结束:比如说本地数据库的初始化,从服务器获取数据等:可以说Application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期于是就引出了Application这个类,当程序启动的时候系统会创建一个Application对象,用来存储系统的一些信息,一般来说是不需要我们指定一个Application的,系统会自动帮我们创建,但如果我们需要在程序启动时,运行一些全局代码时,可以创建一个自己的Appl…
Application是什么? Application和Activity,Service一样,是android框架的一个系统组件,当android程序启动时系统会创建一个 application对象,用来存储系统的一些信息.通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,如果需要创建自己 的Application,也很简单创建一个类继承 Application并在manifest的application标签中进行注册(只需要给Application标签增加个name属…
本文出处: 炎之铠csdn博客:http://blog.csdn.net/totond 炎之铠邮箱:yanzhikai_yjk@qq.com 本文原创,转载请注明本出处! 前言 最近的开发中经常使用到Application类,它的用处很多,但是网上的资料有很多是旧的或者是介绍不全的,在这里全面总结一下,先介绍Application的所有方法,再介绍它的使用经验. 本文基于Android6.0源码,API LEVEL 23. 介绍 首先看看官网的介绍:  下面是我对Application类的理解:…
Android中Application类的详解: 我们在平时的开发中,有时候可能会须要一些全局数据.来让应用中的全部Activity和View都能訪问到.大家在遇到这样的情况时,可能首先会想到自定义一个类,然后创建非常多静态成员. 可是这样的方法不符合Android的框架架构,只是andorid已经为我们提供了这样的情况的解决方式:在Android中,有一个名为Application的类.我们能够在Activity中使用getApplication(),方法来获得.它是代表我们的应用程序的类,使…
转自:lieren666 博客地址:http://blog.csdn.net/lieren666/article/details/7598288 What is Application Application和Actovotu,Service一样是android框架的一个系统组件,当android程序启动时系统会创建一个 application对象,用来存储系统的一些信息.通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,如果需要创建自己 的Application,也很…
首先,在一个Android程序中,有且只有一个Application对象,在程序启动的时候,首先执行Application的onCreate方法,这是一个Android应用的入口,在开发中,我们常常自定义一个MyApplication用来执行某些操作.由于在一个程序中,有且只有一个Application对象,所以我们可以使用单例设计模式,(这句话是错误的!因为单例模式需要把构造函数私有,但是Application的构造函数是不能私有的,所以不能使用单例模式,其实也没有必要这样做)(http://…
实现数据共享功能: 多个Activity里面,可以使用Application来实现数据的共享,因为对于同一个应用程序来说,Application是唯一的. 1.实现全局共享的数据App.java继承自Application: public class App extends Application { private String textData = "default"; public void setTextData(String textData) { this.textData…
<application> <applicationandroid:allowClearUserData=["true" | "false"]android:allowTaskReparenting=["true" | "false"]android:backupAgent="string"android:debuggable=["true" | "false…