Android基础知识
文章平均质量分 72
Kitty_London
正在输入,边学边走。。。
展开
-
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 · 655 阅读 · 0 评论 -
PackageManagerService的常用方法
PackageManagerService的一些常用方法讲解原创 2015-08-18 10:08:39 · 3285 阅读 · 0 评论 -
Android中的dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()
Android中触摸事件传递过程中最重要的是dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()方法。这个是困扰初学者的问题之一,我开始也是。这里记录一下dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()的处理过程,以供记忆。 dispat转载 2016-06-08 09:48:47 · 553 阅读 · 0 评论 -
InputStream与String,Byte之间互转
本文将介绍InputStream与String,Byte之间的相互转换转载 2016-07-01 14:44:40 · 510 阅读 · 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 · 945 阅读 · 0 评论 -
Android中ProgressBar自定义进度条的高度、颜色、圆角
Android中ProgressBar自定义进度条的高度、颜色、圆角转载 2016-07-18 11:12:09 · 7110 阅读 · 0 评论 -
Android 查看手机内存使用情况(/proc/meminfo)
cat /proc/meminfoMemTotal: 2806760 kBMemFree: 197620 kBBuffers: 56696 kBCached: 909360 kBSwapCached: 0 kBActive: 1406036 kBInactive:原创 2016-10-25 11:13:14 · 7600 阅读 · 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 · 774 阅读 · 0 评论 -
使用fastboot工具刷入recovery.img、boot.img、system.img等
使用fastboot工具刷入recovery.img、boot.img、system.img等转载 2017-01-04 10:52:53 · 94609 阅读 · 1 评论 -
Android.mk--编译Android的模块
Android中的各种模块,无论是APK应用、可执行程序还是jar包,都可以通过Build系统编译生成。在每一个模块的源码目录下,都有一个Android.mk文件,里面包含了模块代码的位置、模块的名称、需要链接的动态库等一系列的定义。原创 2015-09-14 18:01:37 · 5462 阅读 · 0 评论 -
Linux下杀死进程(kill)的N种方法
装载网友此篇文章,也作为自己的学习笔记,谢谢。常规方法1、首先,用ps查看进程,命令为:adb shell ps转载 2017-02-17 17:16:58 · 967 阅读 · 0 评论 -
Android的消息机制
Android的消息机制 消息驱动是一种进程或线程的运行模式。内部、外部的各种事件都可以放到消息队列中按序处理。这种模式特别适合处理大量的交互事件。Android应用的UI线程,同样采用了消息驱动模式,所有外部来的按键消息、触屏消息、各种系统Intent、广播等都会转化为内部的消息,然后在主线程中分发处理。消息模型 Android中与消息机制相关的类主要有:Looper、Handler转载 2016-12-06 11:32:05 · 959 阅读 · 0 评论 -
android平台的几个编译命令----make,mmm,mm,mma
在android源码根目录下,执行以下三步即可编译android:1. . build/envsetup.sh #这个脚本用来设置android的编译环境;2. lunch #选择编译目标 3. make #编译android整个系统android平台提供了几个命令用于编译,分别为:1. make: 不带任何参数则是编译整个系统,编译时间比较长,初次编译使用此命令原创 2017-11-09 10:35:03 · 9926 阅读 · 1 评论 -
Android 电量统计
各软硬件耗电量的计算。转载 2016-04-15 20:43:17 · 3502 阅读 · 0 评论 -
避免后台进程被杀死的几种方法
Android的几种进程前台进程 即与用户正在交互的Activity或者Activity用到的Service等,如果系统内存不足时前台进程是最后被杀死的。可见进程 可以是处于暂停状态(onPause)的Activity或者绑定在其上的Service,即被用户可见,但由于失去了焦点而不能与用户交互。服务进程 其中运行着使用startService方法启动的S转载 2018-01-09 10:54:03 · 15340 阅读 · 0 评论 -
forceStopPackage与killBackgroundProcesses方法
主要记录下forceStopPackage与killBackgroundProcesses方法的区别。原创 2016-01-26 13:45:26 · 11299 阅读 · 1 评论 -
安装包的大小信息--PackageStats
PackageStats类该类与应用程序包相关。常用字段packageName:应用包名。codeSize:应用程序大小,如APK大小。dataSize:应用程序的内部数据,如/data/data/。cacheSize:应用程序占用的缓存大小,如/data/data//cache。因此,应用程序的总大小=codeSize+dataSize+cacheSi原创 2016-02-03 15:22:15 · 2637 阅读 · 0 评论 -
getCallingPackage 返回null的原因
今天在项目上遇到一个问题,允许第三方应用商店下载的apk安装到手机中,即使在取消勾选未知来源(不允许安装来自未知来源的应用)的情况下,也不会阻止安装。实现这一功能,重新梳理代码,找出不能实现的原因,最后定位到从PackageInstaller中调用getCallingPackage()方法时,返回的值为null,弹出禁止安装提示框。解决思路主要是通过查看Android官方API,查看源码。原创 2015-10-30 21:40:29 · 8626 阅读 · 1 评论 -
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 · 3727 阅读 · 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 · 2027 阅读 · 0 评论 -
Android--SharedPreferences
获取SharedPreferences的两种方式:1 调用Context对象的getSharedPreferences()方法2 调用Activity对象的getPreferences()方法两种方式的区别:调用Context对象的getSharedPreferences()方法获得的SharedPreferences对象可以被同一应用程序下的其他组件共享.转载 2015-08-27 10:53:03 · 524 阅读 · 0 评论 -
java enum
enum就像一个特殊的class,他可以有自己的变量,可以定义自己的方法,可以实现一个或多个接口。在声明一个enum类型时,要注意它的一些特征。原创 2015-08-13 15:10:48 · 589 阅读 · 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 · 1358 阅读 · 0 评论 -
Android FragmentManage FragmentTransaction介绍(二)
本篇将介绍上篇博客提到的:如何管理Fragment回退栈,Fragment如何与Activity交互,Fragment与Activity交互的最佳实践,没有视图的Fragment的用处,使用Fragment创建对话框,如何与ActionBar,MenuItem集成等~~1、管理Fragment回退栈类似与Android系统为Activity维护一个任务栈,我们也可以通过Activity转载 2015-08-14 16:03:04 · 815 阅读 · 0 评论 -
Android FragmentManage FragmentTransaction介绍(一)
FragmentManage:FragmentManager能够实现管理activity中fragment. 通过调用activity的getFragmentManager()取得它的实例。FragmentManager可以做如下一些事情:1、使用findFragmentById() (用于在activity layout中提供一个UI的fragment)或findFragme转载 2015-08-13 11:20:30 · 610 阅读 · 0 评论 -
Android FragmentManage FragmentTransaction介绍(三)
本文目标教你如何用好Fragment,即Fragment的一些使用的建议,(多数内容来自:android programming the big nerd ranch guide 一书,直接百度,你懂的,虽然是基础书籍,还是很值得一看的)。1、概述首先我们简单回顾一下,相信大家对Fragment的都不陌生,对于Fragment的使用,一方面Activity需要在布局中为Fragme转载 2015-08-14 16:13:35 · 798 阅读 · 0 评论 -
Android--SparseArray<E>详细介绍
最近在Android源码时,发现很多地方使用到了SparseArray<E>,翻阅资料,现整理一下SparseArray的使用原创 2015-08-05 16:23:59 · 580 阅读 · 0 评论 -
删除文件及文件夹
删除文件: public boolean deleteFile(String sPath) { boolean flag = false; if(sPath == null){ return false; } File file = new File(sPath); if (file原创 2015-08-06 10:00:20 · 655 阅读 · 0 评论 -
Android--文件监控FileObserver
在Android系统中封装了一个FileObserver类,该类是基于Linux的Inotify机制实现的。FileObserver是一个抽象类,必须定义一个子类继承FileObserver,并且实现该类的onEvent抽象方法,当被监控的文件或目录发生变更事件时,将回调FileObserver的onEvent()方法来处理文件或目录的变更事件。原创 2015-08-18 22:55:08 · 1542 阅读 · 0 评论 -
检测Activity是否在当前Task的栈顶
Android系统内部状态信息的相关api:得到ActivityManager :ActivityManager activityManager = (ActivityManager)this.getSystemService(ACTIVITY_SERVICE)获取进程内存状态的信息:Debug.MemoryInfo[] proces原创 2015-10-22 21:42:31 · 906 阅读 · 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 · 2215 阅读 · 0 评论 -
Android M -- Power-Saving Optimizations
本人英文较差,翻译水平有限,请多加指正,谢谢。Power-Saving OptimizationsAndroid M Preview helps prolong battery life by introducingnew power-saving optimizations: Doze mode improves the sleep efficiency ofidle devic原创 2015-09-22 21:33:20 · 1086 阅读 · 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 · 3905 阅读 · 0 评论 -
Android5.1--SystemServer进程
这篇博客作为自己的学习心得记录下来,欢迎提出问题,一起学习进步。SystemServer是Android系统的核心之一,大部分Android提供的服务都运行在这个进程里,SystemServer中运行的服务总共有60多种。为了防止应用进程对系统造成破坏,Android的应用进程没有权限访问设备的底层资源,只能通过SystemServer中的服务代理访问。原创 2015-10-13 16:32:05 · 2212 阅读 · 0 评论 -
Android 预置应用
Android如何将第三方应用预置到手机中?分析下该需求,预置第三方应用,要求可卸载,恢复出厂设置后可恢复这些应用。就需要将这些应用预置到system下面,如果放到data下面恢复出厂设置后就不能恢复这些应用了。一、代码设计1、创建“/system/presetapp”目录,将预置应用保存到该目录下。2、在PackageManagerService的构造方法里创建PresetApp的对原创 2018-04-03 16:42:39 · 1873 阅读 · 0 评论