![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
文章平均质量分 75
myxmu
不积跬步无以至千里,不积小流无以成江海
展开
-
Android 电源管理
电源管理可以说是移动设备中最关键的技术之一,特别是对于现代的智能手机,具有大屏幕,高频处理器,大内存,各种外设多(gps,camera,传感器),多任务操作系统,等特点,电源管理尤其显得重要,如果没有一个高效的电源管理方案,你的smart phone可能跑2小时就没电了。Android的电源管理技术有什么特点呢:1. Application并不直接控制电源2. Application转载 2012-09-10 13:40:14 · 931 阅读 · 0 评论 -
待机、睡眠、休眠的区别
在windows XP系统中,默认有待机和休眠两种方式来供我们在特殊情况下使用,既不影响我们的使用,又能节省耗电。而在windows vista系统之后,像Windows 7又新增加了一个睡眠功能,它结合了待机和休眠,是一种全新的模式,也是使用最普遍的。 待机:在我们长时间离开,但又希望回来立刻恢复到走时的状态,可以选择待机。在待机状态下,对所有硬件(除开内存)供电停止,使能耗转载 2012-09-08 20:56:17 · 823 阅读 · 0 评论 -
Android中HAL如何向上层提供接口总结
参考文献:http://blog.csdn.net/luoshengyang/article/details/6573809http://blog.csdn.net/hongtao_liu/article/details/6060734建议阅读本文时先浏览以上两篇文章,本文是对上两篇文章在HAL对上层接口话题的一个总结.1 什么是HALHAL的全称是Hardwa转载 2013-01-01 10:19:16 · 664 阅读 · 0 评论 -
android数据库基础
数据库是保存用户数据的文件,包括默认的设置和个人重新设置的数据,这些数据保存在/data/data下的各个以apk包名为目录名的路径下:#cd /data/data #busybox find ./ -name "*.db" -print ./com.Android.email/databases/EmailProviderBody.db- ./com.Android转载 2012-09-30 17:40:06 · 2077 阅读 · 0 评论 -
高通MSM/QSD/QSC 的区别
QSC--Qualcomm Single ChipMSM--Mobile Station ModemMDM--Mobile Data Modem,数据卡解决方案。QSD--高通老一代的设计体系,新的设计为MSM。APQ 是AP only的芯片,没有modem功能,可以做Wifi only的平板电脑原创 2012-09-16 21:01:15 · 5553 阅读 · 0 评论 -
Linux Kernel and Android 休眠与唤醒(中文版)
版本信息Linux Kernel: v2.6.28 Android: v2.0 对于休眠(suspend)的简单介绍在Linux中,休眠主要分三个主要的步骤:冻结用户态进程和内核态任务 调用注册的设备的suspend的回调函数顺序是按照注册顺序 休眠核心设备和使CPU进入休眠态冻结进程是内核把进程列表中所有的进程的状态都设置为停止,并且保存下所有进程转载 2012-09-10 10:25:24 · 540 阅读 · 0 评论 -
Android 中Parcelable的作用
android提供了一种新的类型:Parcel。本类被用作封装数据的容器,封装后的数据可以通过Intent或IPC传递。 除了基本类型以外,只有实现了Parcelable接口的类才能被放入Parcel中。 Parcelable实现要点:需要实现三个东西1)writeToParcel 方法。该方法将类的数据写入外部提供的Parcel中.声明如下:writeToParcel (Pa转载 2012-09-03 11:25:55 · 803 阅读 · 0 评论 -
密钥系统简介
公用密钥加密技术使用不对称的密钥来加密和解密,每对密钥包含一个公钥和一个私钥,公钥是公开,而且广泛分布的,而私钥从来不公开,只有自己知道。 用公钥加密的数据只有私钥才能解密,相反的,用私钥加密的数据只有公钥才能解密,正是这种不对称性才使得公用密钥密码系统那么有用。 使用公用密钥密码系统进行认证 认证是一个验证身份的过程,目的是使一个实体能够确信对方是他所声称的实体。 下转载 2012-10-26 16:53:16 · 1273 阅读 · 0 评论 -
Android 如何建立AIDL
建立AIDL服务要比建立普通的服务复杂一些,具体步骤如下: (1)在Eclipse Android工程的Java包目录中建立一个扩展名为aidl的文件。该文件的语法类似于Java代码,但会稍有不同。详细介绍见实例52的内容。 (2)如果aidl文件的内容是正确的,ADT会自动生成一个Java接口文件(*.java)。 (3)建立一个服务类(Ser转载 2012-10-09 19:02:15 · 548 阅读 · 0 评论 -
Android下打印调用栈
1. Java层如何打印调用栈?在优化Android启动过程时,同事给出一种打印出调用栈的函数。分享一下 java.util.Map ts = Thread.getAllStackTraces(); StackTraceElement[] ste = ts.get(Thread.currentThread()); for (StackTraceEleme转载 2012-10-09 14:24:20 · 732 阅读 · 0 评论 -
命令行控制蓝牙开关
1. 命令行控制蓝牙开关adb shellcd /data/data/com.android.providers.settings/databasessqlite3 settings.dbselect * from secure where name="bluetooth_on"; (查看是否打开)update secure set value=1 where name="bl原创 2012-11-28 13:51:24 · 18769 阅读 · 1 评论 -
Git的Patch功能
UNIX世界的软件开发大多都是协作式的,因此,Patch(补丁)是一个相当重要的东西,因为几乎所有的大型UNIX项目的普通贡献者,都是通过 Patch来提交代码的。作为最重要的开源项目之一,Linux,也是这样的。普通开发者从软件仓库clone下代码,然后写入代码,做一个Patch, 最后用E-mail发给Linux Kernel的维护者就好了。Git最初作为Linux的版本控制工具,提供了透明、转载 2012-11-22 15:13:46 · 395 阅读 · 0 评论 -
在android中使用SharedPreferences进行数据存储
Android提供的SharedPreferences类似于Windows程序中常用的ini文件,以Key-Value的形式来保存应用程序的属性设置信息(区分数据类型)。比如,可以用来保存用户上一次的登录信息;可以保存媒体播放程序的音量设置以及上次播放位置等。在使用SharedPreferences时常用的方法包括(方法具体含义参考官方文档):• Context.getSharedPref转载 2012-11-20 17:30:57 · 448 阅读 · 0 评论 -
Android的设置界面及Preference使用
androidstringxmlencodingstructuresystem目录(?)[+]一.基础知识二.实例开发 SharedPreferences PreferenceActivity OnPreferenceChangeListener三.总结一.基础知识 我们在使用Android手机时,可能会经常用到其中的设置界面,如下所示:转载 2012-11-20 15:18:27 · 497 阅读 · 0 评论 -
[实例教程] Android中的Intent详细讲解
在一个Android应用中,主要是由四种组件组成的,这四种组件可参考“Android应用的构成”。而这四种组件是独立的,它们之间可以互相调用,协调工作,最终组成一个真正的Android应用。在这些组件之间的通讯中,主要是由Intent协助完成的。Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将转载 2012-11-20 13:42:01 · 536 阅读 · 0 评论 -
Android 常用的intent Action整理
Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent (意图) ,Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递Intent来执行动作和产生事件。Intent作为联系各Activity之间的纽带,其作用并不仅仅只限于简单的数据传递。通过其自带的属性,其实可以方便的完成很多较为复杂的操作。例如直接调用拨号功能、处理接收短信,诸如此转载 2012-11-20 13:29:29 · 514 阅读 · 0 评论 -
Android开发学习笔记(4):浅谈显示Intent和隐式Intent
Intent寻找目标组件的两种方式:显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的。隐式Intent:通过Intent Filter来实现的,它一般用在没有明确指出目标组件名称的前提下,一般是用于在不同应用程序之间。一.显式Intent 一般情况下,一个Android应用程序中需要多个屏幕,即是多个Ac转载 2012-11-20 12:46:49 · 415 阅读 · 0 评论 -
onCreateDialog方法及示例
一个Dialog一直被创建及作为Activity的一部分显示的时候,一般情况下,你应该使用回调方法onCreateDialog(int)创建Dialog,当你使用这个方法的时候,Android系统会自动的管理每一个Dialog的状态,并有效的控制着每个Dialog,同样的,每个Dialog也会继承Activity中的某些特性。就像当一个Dialog显示的时候,按下菜单键显示Activity定义的选转载 2012-11-19 17:22:17 · 630 阅读 · 0 评论 -
java synchronized详解
Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一个synchron转载 2012-11-19 16:49:26 · 401 阅读 · 0 评论 -
Android4.0中判断WIFI P2P选项是否显示的源码分析
Android 4.0新增WIFI DIRECT的功能,但是在模拟器上以及一些可以升级至4.0的手机或平板,在settings里面仍然没有WIFI DIRECT功能选项。于是出于好奇,所以跟踪了一 下源码。 1. 查找在系统设置包中是否有WIFI DIRECT这部分代码处理。 在Android4.0的源码路径(我的是源码路径为:myandroid_4.0转载 2012-11-14 16:56:22 · 977 阅读 · 0 评论 -
Android init进程启动分析
一、Android Init.c执行流程Android中的内核启动后,kernel会启动第一个用户级别的进程:init,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。init始终是第一个进程。PS:可以通过:ps aux | grep init命令来查看其Pid为1。转载 2012-11-14 12:43:50 · 1053 阅读 · 0 评论 -
Android 中Native方法是怎样调用的
1. Power.java--> find corresponding native cfile(查找对应的具体用C实现的C文件) android.os.Power.java -------- native file ---->.../jni/android_os_Power.c 2. in android_os_Power.c, you canfin转载 2012-11-13 11:30:37 · 749 阅读 · 0 评论 -
git repo使用心得
git是相当与svn,cvs等的版本控制工具,repo封装了对git的操作,使git命令更简单化,在使用git时,用了repo,Windows下开发,使用的是Cygwin工具,这个比git的bash更好使用。使用git一定要明白,add,commit操作都不会影像远程代码仓库,只有push了才会将代码推送到远程仓库,比svn多了一步;下面以本人的操作为例:1. mkdir gitlearn转载 2012-11-13 10:10:07 · 524 阅读 · 0 评论 -
浅析android通过jni控制service服务程序的简易流程
android_net_wifi_startSupplicant这个就是jni函数=>wifi_start_supplicantstatic const char SUPP_CONFIG_TEMPLATE[]= "/system/etc/wifi/wpa_supplicant.conf";static const char SUPP_CONFIG_FILE[] = "/data/mis转载 2012-11-12 20:24:20 · 856 阅读 · 0 评论 -
Android.mk文档规范
Android.mk 编译文件是用来向 Android NDK描述你的 C,C++源代码文件的, 这篇文档描述了它的语法。在阅读下面的内容之前,假定你已经阅读了 docs/OVERVIEW.TXT 文件,了解了它们的脚色和用途。一、概述 一个 Android.mk file 用来向编译系统描述你的源代码。具体来说: (1) 该文件是GNU Makefile的一小部分,会转载 2012-11-12 17:43:32 · 467 阅读 · 0 评论 -
银行的USB KEY里面包含的是什么
银行的数字证书说明:如果用户想得到一份属于自己的证书,他应先向银行(可看作CA机构)提出申请。在银行(CA)判明申请者的身份后,便为他分配一个公钥,并且CA将该公钥与申请者的身份信息绑在一起,并为之签字(用CA的私钥对申请人的证书进行加密)后,便形成证书发给那个用户(申请者)。用户即可凭借该证书登陆网上银行进行相关银行业务>>>>>> 如果银行想鉴别登陆人员的真伪,需严正登陆者的数字证书转载 2012-11-01 11:37:54 · 2856 阅读 · 0 评论 -
Android ANR异常及其解决方式
ANR定义在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择让程序继续运行,但是,他们在使用你的应用程序时,并不希望每次都要处理这个对话框。因此,在程序里对响应性能的设计很重要,这样,系统不会显示ANR给用户。解决ANR异常概述:转载 2012-12-18 09:25:59 · 539 阅读 · 0 评论 -
git rebase与git merge区别
一、基本git rebase用于把一个分支的修改合并到当前分支。假设你现在基于远程分支"origin",创建一个叫"mywork"的分支。$ git checkout -b mywork origin假设远程分支"origin"已经有了2个提交,如图 现在我们在这个分支做一些修改,然后生成两个提交(commit).$ vi file.txt$ git转载 2012-12-06 16:51:24 · 840 阅读 · 0 评论 -
Android HAL(硬件抽象层)介绍以及调用
1 HAL简介 Android 的 HAL(Hardware Abstract Layer硬件抽象层)是Google因应厂商「希望不公开源码」的要求下,所推出的新观念,其架构如下图。虽然 HAL 现在的「抽象程度」还不足,现阶段实作还不是全面符合 HAL的架构规划,不过也确实给了我们很好的思考空间。ce - 许兴旺的博客" border="0" alt="Android HAL 分析转载 2013-01-01 10:52:01 · 1182 阅读 · 0 评论 -
浅谈Android开机启动速度优化
众所周知Android开机启动速度较慢,于是如何加快启动速度便成为一个值得讨论的问题。在查阅过许多资料后(特别是Google Group的android-platform),我整理总结出下面几点基本看法。 Android开机启动耗时较多的部分有2个,分别是preload classes和scan packages。这里又数preload classes最为耗时,在我转载 2013-01-30 15:09:03 · 849 阅读 · 0 评论 -
Android系列之Wifi定位
Broncho A1还不支持基站和WIFI定位,Android的老版本里是有NetworkLocationProvider的,它实现了基站和WIFI定位,但从 android 1.5之后就被移除了。本来想在broncho A1里自己实现NetworkLocationProvider的,但一直没有时间去研究。我知道 gears(http://code.google.com/p/gears/)是有提供转载 2013-01-30 15:22:43 · 1019 阅读 · 0 评论 -
Android对Linux内核的增强:Low Memory Killer(低内存管理)
Android在内存管理上与linux有些小的区别。其中一个就是引入了Low memory killer .1,引入原因 Android是一个多任务系统,也就是说可以同时运行多个程序,这个大家应该很熟悉。一般来说,启动运行一个程序是有一定的时间开销的,因此为了加快运行速度,当你退出一个程序时,Android并不会立即杀掉它,这样下次再运行该程序时,可以很快的启动。随着系统中保留的程序转载 2013-01-21 20:56:21 · 1436 阅读 · 0 评论 -
make_ext4fs制作system.img
make_ext4fs用于Android平台上制作ext4文件系统的镜像。用法举例:make_ext4fs -l 512M -s -a system system.ext4img system之后再使用simg2img制作镜像。 有一个问题是,使用这样制作的镜像,system分区文件的权限都是预定的,即使先修改system目录文件权限后在制作镜像,烧入设备后,其权限仍未改变。关键问转载 2013-02-16 19:40:29 · 15214 阅读 · 1 评论 -
Swing 程序 多次打开 运行在同一java虚拟机 的实现
问题描述:用java swing写了个记事本程序,并打成了exe文件在windows下运行,但是每次启动,都会启动一个java虚拟机,每个java虚拟机的启动,都会大量消耗内存。特别是将系统txt文件的默认打开方式设置为本记事本程序时,每双击打开一个记事本,就启动一个jvm,内存消耗30于M,更重要的是,启动jvm很耗时间,在自己的机器上(i5处理器)启动该记事本程序需要2—5秒的时间,用着很转载 2013-02-18 18:32:34 · 856 阅读 · 0 评论 -
adb shell dumpsys 命令 查看内存
目录(?)[+]用以下命令可以查看程序的内存使用情况adb shell dumpsys meminfo package_name or pid 使用程序的包名或者进程id用comtencentqqpimsecure为例 android程序内存被分为2部分:native和dalvik,dalvik就是我们平常说的java堆,我们创建的对象是在这里面分配的,而b转载 2013-03-04 12:39:24 · 658 阅读 · 0 评论 -
android性能测试工具之dumpsys
补记: MAT(memory analyzer tool )是google 推荐的进行内存使用量分析的工具. 功能全面而强大!!!首先看一下dumpsys有哪些功能:dumpsys 用来给出手机中所有应用程序的信息,并且也会给出现在手机的状态。dumpsys [Option] meminfo 显示内存信息 cpuinfo转载 2013-03-04 12:41:22 · 580 阅读 · 0 评论 -
Dalvik
Dalvik是Google公司自己设计用于Android平台的Java虚拟机。Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。它可以支持已转换为 .dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。Dalvik 经过优化,允许在有限的内存中同转载 2013-02-18 16:53:32 · 513 阅读 · 0 评论 -
认识Miracast、DLNA与AirPlay
4.2有个独特功能叫Miracast,能将Nexus 4手机的游戏、影视“镜像”电视机或者电视盒上。谷歌论坛已经确认刚发布的三个亲儿子中,只有Nexus 4具有这项功能。小米则号称不但可以跟安卓传输,还包括苹果产品,但似乎还不支持Miracast。目前这种将终端信号经由WiFi传输到电视、电视盒的技术有三种:DLNA、AirPlay、Miracast。DLNA:DNLA转载 2013-02-21 14:52:38 · 4082 阅读 · 0 评论 -
Android Tombstone解决步骤 .
这周和同事一起解了个tombstone的bug, 记录下分析的过程,免得以后又忘记。。。1>log的分析pid: 122, tid: 14745, name: Binder_2 >>> /system/bin/mediaserver signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000058 eax 0000转载 2013-03-05 15:07:32 · 998 阅读 · 0 评论 -
如何调试分析Android中发生的tombstone
如何调试分析Android中发生的tombstoneAndroid中较容易出现以下三类问题:Force close / ANR / Tombstone前两者主要是查看当前的进程或者系统框架层的状态和堆栈就基本可以分析出来,本文主要讨论一下tombstone的情况。tombstone一般是由Dalvik错误、状态监视调试器、C层代码以及libc的一些问题导致的。当系统发生to转载 2013-03-05 14:05:24 · 1653 阅读 · 0 评论