Android应用
文章平均质量分 74
Kitty_London
正在输入,边学边走。。。
展开
-
Android中Back键实现Home键功能
1、先说一下Back键和Home键的区别Back键:当按下Back键的时候,系统默认调用Activity的onDestory方法,销毁当前的Activity。这个Activity再次启动的时候,重新调用onCreate方法创建。Home键:当按下Home键的时候,系统默认调用Activity的onStop方法,整个应用程序会被隐藏起来;再次进入应用程序时,系统自动调用onResume方法,原创 2015-05-14 11:17:20 · 6792 阅读 · 0 评论 -
Android-Cannot merge new index 66195 into a non-jumbo instruction的解决办法
转载请注明来源:http://blog.csdn.net/goldenfish1919/article/details/33729679用eclispe打包的时候报错:[2014-06-23 13:44:35 - Dex Loader] Unable to execute dex: Cannot merge new index 66195 into a non-jumbo inst转载 2016-01-06 19:32:33 · 1434 阅读 · 0 评论 -
安装包的大小信息--PackageStats
PackageStats类该类与应用程序包相关。常用字段packageName:应用包名。codeSize:应用程序大小,如APK大小。dataSize:应用程序的内部数据,如/data/data/。cacheSize:应用程序占用的缓存大小,如/data/data//cache。因此,应用程序的总大小=codeSize+dataSize+cacheSi原创 2016-02-03 15:22:15 · 2563 阅读 · 0 评论 -
PackageManagerService的常用方法
PackageManagerService的一些常用方法讲解原创 2015-08-18 10:08:39 · 3233 阅读 · 0 评论 -
Android中的dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()
Android中触摸事件传递过程中最重要的是dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()方法。这个是困扰初学者的问题之一,我开始也是。这里记录一下dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()的处理过程,以供记忆。 dispat转载 2016-06-08 09:48:47 · 503 阅读 · 0 评论 -
InputStream与String,Byte之间互转
本文将介绍InputStream与String,Byte之间的相互转换转载 2016-07-01 14:44:40 · 492 阅读 · 0 评论 -
去除List中重复的元素
用Set ,倘若list里边的元素不是基本数据类型而是对象,那么请覆写Object的boolean equals(Object obj) 和int hashCode()方法.return new ArrayList(new HashSet(list));方法一:循环元素删除// 删除ArrayList中重复元素 public static void removeDupli转载 2016-07-05 09:51:20 · 913 阅读 · 0 评论 -
Android中ProgressBar自定义进度条的高度、颜色、圆角
Android中ProgressBar自定义进度条的高度、颜色、圆角转载 2016-07-18 11:12:09 · 7041 阅读 · 0 评论 -
Android Java层的同步机制
Java语言和C/C++语言不一样,JAVA语言中提供了同步关键字synchronized来支持线程键的同步操作。同步关键字synchronized synchronized关键字最常见的用法是保护一段代码,如下:public class Foo implements Runnable { private String mLock; public void lock原创 2016-11-30 15:52:14 · 741 阅读 · 0 评论 -
功耗优化--对齐唤醒
概况Android手机上安装的很多应用都会频繁唤醒手机(唤醒系统、唤醒屏幕),造成手机耗电等现象。良好的对齐唤醒管理方案,就是对后台应用待机时不频繁唤醒,智能节省电量。实现原理:APK作为该功能的入口,勾选应用后,将勾选的应用写入黑名单,并通知framework黑名单内容变化;framework接收到通知后,自动获取黑名单中的应用,保存到列表中;在framework调用接口中检测应用是原创 2017-03-29 21:15:33 · 6910 阅读 · 0 评论 -
连接Java和C/C++层的关键--Android的JNI
JNI的作用 JNI是Java Native Interface(Java本地接口)的缩写。是从Java继承而来的,在Android中JNI的作用大大增强了。Android作为一种嵌入式操作系统,有大量和驱动、硬件相关的功能必须在native层实现,另外一些注重性能、功耗的功能使用C/C++来实现也优于Java来实现。因此,在Android开发中,无论是应用开发,还是系统开发都离不开JN转载 2017-11-23 14:37:13 · 793 阅读 · 0 评论 -
Android多线程--HandlerThread的使用以及原理
如果已经理解了Android的消息机制(Handler、Looper、Message、MessageQueue),再来看HandlerThread就很容易了,参考如下:http://blog.csdn.net/kitty_landon/article/details/53410183源码解析 最直观的方法就是分析源码,先把源码贴出来。/** * Handy cl转载 2017-12-07 10:08:12 · 319 阅读 · 0 评论 -
Android多线程--IntentService的使用及原理
IntentService概述 这里我们看下HandlerThread在IntentService中的应用,建议先看下上一篇关于HandlerThread的介绍(点击打开链接),有助于理解IntentService。先来看下IntentService的特点: (1)、它本质是一种特殊的Service,继承自Service并且本身就是一个抽象类; (2)、它可以用于在后转载 2017-12-08 09:59:33 · 324 阅读 · 0 评论 -
Android多线程--Android中常见的四种线程池
前言 使用线程池可以给我们带来很多好处,首先通过线程池中线程的重用,减少创建和销毁线程的性能开销。其次,能控制线程池中的并发数,否则会因为大量的线程争夺CPU资源造成阻塞。最后,线程池能够对线程进行管理,比如使用ScheduledThreadPool来设置延迟N秒后执行任务,并且每隔M秒循环执行一次。 下面通过介绍线程池中的真正实现者--ThreadPoolExecutor来引转载 2018-01-09 10:50:34 · 455 阅读 · 0 评论 -
Android性能优化 -- TraceView工具
TraceView是什么 TraceView是Android SDK中内置的一个数据采集和分析工具,它可以加载trace文件,用图形的形式展示代码的执行时间、次数及调用栈,找出最需要优化的点。 trace文件是log信息文件的一种,可以通过代码,Android Studio,或者DDMS生成。 TraceView从代码层面分析性能问题,针对每个方法来分析,比如当我们发原创 2018-01-26 13:31:39 · 494 阅读 · 0 评论 -
获取桌面应用、动态壁纸、输入法应用
1、获取桌面应用 /** * get all packages of Home apps's * * @param context * @return */ public static List getHomePkgs(Context context) { List homePkgs = new ArrayLis原创 2015-12-29 20:05:15 · 1083 阅读 · 0 评论 -
关于java.lang.IllegalArgumentException: View not attached to window manager 错误的分析
转载请务必注明出处:http://blog.csdn.net/yihongyuelan 今天遇到一个很奇特的问题,当用户设置了PIN码,在锁屏界面正常解锁PIN码后,进入Launcher时显示com.android.phone 已停止运行。一开始猜想会不会是解锁PIN码的时候处理导致了Phone进程报错,通过log分析找到了问题的大概原因:[plain] view转载 2015-11-16 11:27:04 · 822 阅读 · 0 评论 -
getCallingPackage 返回null的原因
今天在项目上遇到一个问题,允许第三方应用商店下载的apk安装到手机中,即使在取消勾选未知来源(不允许安装来自未知来源的应用)的情况下,也不会阻止安装。实现这一功能,重新梳理代码,找出不能实现的原因,最后定位到从PackageInstaller中调用getCallingPackage()方法时,返回的值为null,弹出禁止安装提示框。解决思路主要是通过查看Android官方API,查看源码。原创 2015-10-30 21:40:29 · 8526 阅读 · 1 评论 -
Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask等
方法一:(java习惯,在android不推荐使用)刚刚开始接触android线程编程的时候,习惯好像java一样,试图用下面的代码解决问题new Thread( new Runnable() { public void run() { myView.invalidate(); } }).sta转载 2015-07-13 10:27:10 · 714 阅读 · 0 评论 -
Android--SparseArray<E>详细介绍
最近在Android源码时,发现很多地方使用到了SparseArray,翻阅资料,现整理一下SparseArray的使用: /** * Which uses have been started, so are allowed to run code. */ final SparseArray mStartedUsers = new SparseArray();转载 2015-08-10 15:47:37 · 643 阅读 · 0 评论 -
Android--显示指定路径的图片
String localIconNormal = "/data/data/com.android.factorypattern/FPTest.bmp"; File localFile; FileInputStream localStream = null; Bitmap bitmap = null; localFile = new File(localIconNor原创 2015-08-26 14:15:38 · 2017 阅读 · 0 评论 -
java enum
enum就像一个特殊的class,他可以有自己的变量,可以定义自己的方法,可以实现一个或多个接口。在声明一个enum类型时,要注意它的一些特征。原创 2015-08-13 15:10:48 · 555 阅读 · 0 评论 -
Android--SharedPreferences
获取SharedPreferences的两种方式:1 调用Context对象的getSharedPreferences()方法2 调用Activity对象的getPreferences()方法两种方式的区别:调用Context对象的getSharedPreferences()方法获得的SharedPreferences对象可以被同一应用程序下的其他组件共享.转载 2015-08-27 10:53:03 · 516 阅读 · 0 评论 -
Android FragmentManage FragmentTransaction介绍(二)
本篇将介绍上篇博客提到的:如何管理Fragment回退栈,Fragment如何与Activity交互,Fragment与Activity交互的最佳实践,没有视图的Fragment的用处,使用Fragment创建对话框,如何与ActionBar,MenuItem集成等~~1、管理Fragment回退栈类似与Android系统为Activity维护一个任务栈,我们也可以通过Activity转载 2015-08-14 16:03:04 · 794 阅读 · 0 评论 -
Android FragmentManage FragmentTransaction介绍(一)
FragmentManage:FragmentManager能够实现管理activity中fragment. 通过调用activity的getFragmentManager()取得它的实例。FragmentManager可以做如下一些事情:1、使用findFragmentById() (用于在activity layout中提供一个UI的fragment)或findFragme转载 2015-08-13 11:20:30 · 578 阅读 · 0 评论 -
Android FragmentManage FragmentTransaction介绍(三)
本文目标教你如何用好Fragment,即Fragment的一些使用的建议,(多数内容来自:android programming the big nerd ranch guide 一书,直接百度,你懂的,虽然是基础书籍,还是很值得一看的)。1、概述首先我们简单回顾一下,相信大家对Fragment的都不陌生,对于Fragment的使用,一方面Activity需要在布局中为Fragme转载 2015-08-14 16:13:35 · 783 阅读 · 0 评论 -
利用ViewPager+Fragment+actionbar实现可左右滑动的Action Tab
1. ViewPager要点:ViewPager 是一个布局管理类(layout manager),用于提供页面的左右滑动功能,类似于ListView,也有为ViewPager提供 数据(Fragment)的 adapter 控制类(FragmentPagerAdapter, FragmentStatePagerAdapter)。ViewPager 经常和 Fragment转载 2015-08-14 15:25:07 · 1330 阅读 · 0 评论 -
Android adb 发送广播、启动Activity、Service等
Android adb 发送广播、启动Activity、Service等原创 2015-07-23 15:56:52 · 2902 阅读 · 0 评论 -
Android--SparseArray<E>详细介绍
最近在Android源码时,发现很多地方使用到了SparseArray<E>,翻阅资料,现整理一下SparseArray的使用原创 2015-08-05 16:23:59 · 572 阅读 · 0 评论 -
Android--文件监控FileObserver
在Android系统中封装了一个FileObserver类,该类是基于Linux的Inotify机制实现的。FileObserver是一个抽象类,必须定义一个子类继承FileObserver,并且实现该类的onEvent抽象方法,当被监控的文件或目录发生变更事件时,将回调FileObserver的onEvent()方法来处理文件或目录的变更事件。原创 2015-08-18 22:55:08 · 1505 阅读 · 0 评论 -
如何判断一个未安装的APK是Launcher应用
网上找的大都是已安装应用的判断方法,那么如何判断未安装的apk是否是桌面应用呢?直接上代码: private boolean isLauncherApp(String dexPath) { boolean isHomeCategory = false; try { Class classPackageParser = Class原创 2015-11-04 09:38:20 · 2746 阅读 · 1 评论 -
检测Activity是否在当前Task的栈顶
Android系统内部状态信息的相关api:得到ActivityManager :ActivityManager activityManager = (ActivityManager)this.getSystemService(ACTIVITY_SERVICE)获取进程内存状态的信息:Debug.MemoryInfo[] proces原创 2015-10-22 21:42:31 · 855 阅读 · 0 评论 -
dumpsys activity
adb shell dumpsys activity---------------查看ActvityManagerService 所有信息adb shell dumpsys activity activities----------查看Activity组件信息adb shell dumpsys activity services-----------查看Service组件信息a原创 2015-09-22 13:39:07 · 2154 阅读 · 0 评论 -
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an appli
在framework或service中创建对话框时,导致系统重启,异常报错:BadTokenException: Unable to add window -- token null is not for an application。10-01 17:07:59.097 3590 3685 E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM P原创 2015-10-28 20:35:43 · 3856 阅读 · 0 评论 -
java.lang.ClassCastException 在 android 当尝试获取应用程序的图标
Caused by: java.lang.ClassCastException: android.graphics.drawable.NinePatchDrawable cannot be cast to android.graphics.drawable.BitmapDrawable图标是没有实例的 BitmapDrawable,一个可以检查像这样:Bitmap原创 2015-10-29 16:51:45 · 3672 阅读 · 0 评论 -
forceStopPackage与killBackgroundProcesses方法
主要记录下forceStopPackage与killBackgroundProcesses方法的区别。原创 2016-01-26 13:45:26 · 11190 阅读 · 1 评论