可能你会想下载Android系统源码,但是我不知道你会看多少系统的源码,如果你对源码只是偶尔看一次的话,推荐你在线看Android的系统源码,下面提供几种查看android系统源码的方法. 1:打开这个网站 https://android.googlesource.com/platform/frameworks/base/+refs 这个是google源码的开源网站,打开后你可以选择不同的系统版本进行查看. 2:打开这个网站http://www.grepcode.com/project/repo…
root@itek82_wet_kk:/ # cat default.prop # # ADDITIONAL_DEFAULT_PROPERTIES # ro.secure= ro.allow.mock.location= persist.mtk.aee.aed=on ro.debuggable= ro.adb.secure= persist.sys.usb.config=mass_storage persist.service.acm.enable= ro.mount.fs=EXT4 ro.pe…
原先的2.2的android源码已经不是那么容易找到了,我稍稍搜索了下找到了一两个没速度的死链就失去了兴趣.不过还好忽然发现在android.provider包下包含了常见的provider的使用方法和静态常量 android.provider.ContactsContract包,封装了常用的对联系人的操作和静态常量,在此包的RawContacts类的javadoc中甚至给出了对联系人的增删改查方法 android.provider.MediaStore类中则包括了调用系统相机拍照和录像的act…
在Appium进行自动化测试的时候,往往需要知道你要测试的应用的包名和activity的名字,这样才可以进行自动化测试. 在我之前的博客中也提到了获取activity的名字,但是并不是很方便,甚至浪费类好多时间在寻找包名和activity上边,下面有一种简单的方法,一句命令就搞定了! 1.adb查看最上层activity名字 Linux: adb shell dumpsys activity | grep "mFocusedActivity" windows: adb shell du…
可以通过adb shell pm list package 我们可以通过系统提供的工具pm来隐藏一些应用,比如:pm hide和pm disable pm disable <PACKAGE_OR_COMPONENT> :使package或component不可用. (如:pm disable "package/class")(disable了指定的package,但是getComponentEnabledSetting该package里的components依然是enabl…
文件目录: 使用Linux命令,进入到/proc目录 进入/proc目录,可以查看内存信息(memoinfo)或CPU信息(cpuinfo),使用cat命令…
命令方式: cat /system/build.prop dalvik.vm.heapgrowthlimit=48m dalvik.vm.heapsize=128m 代码方式: Runtime rt=Runtime.getRuntime(); long maxMemory=rt.maxMemory(); log.i(*))); heapgrowthlimit就是一个普通应用的内存限制,用ActivityManager.getLargeMemoryClass()获得的值就是这个.而heapsize…
命令行输入如下命令 adb shell dumpsys |grep BroadcastRecord…
1.关于Android系统中不同的定位模式 Android系统中包括3中定位模式:   使用GPS.WLAN和移动网络 使用WLAN和移动网络 仅使用GPS 截图 特点 同时使用GPS.WIFI及基站定位,速度快.精度高,室内定位效果好. 缺点:耗流量.耗电量 只使用WIFI和基站定位,需要WIFI或者基站才行,室内效果好. 缺点:依赖WIFI或基站,精度一般 不依赖WIFI和基站,室内效果差,户外可靠性好. 缺点:室内效果差 代码 LocationManager.GPS_PROVIDER =…
原文:Android零基础入门第2节:Android 系统架构和应用组件那些事 继上一期浅谈了Android的前世今生,这一期一起来大致回顾一下Android 系统架构和应用组件. 一.Android 系统架构 Android系统的底层建立在Linux系统之上,该平台由操作系统.中间件.用户界面和应用软件4层组成,它采用一种被称为软件叠层(Software Stack)的方式进行构建.这种软件叠层结构使得层与层之间相互分离,明确各层的分工.这种分工保证了层与层之间的低耦合,当下层的层内或层下发生…
问题:使用adb pull命令从android系统中读取文件失败.显示:Permission denied   原因:是由于文件权限原因引起.       使用ls -l命令查看android系统中的文件权限为:     -rw-rw---- app_51   app_51     也就是说,该文件只有app_51用户以及app_51群组拥有读写权限,而adb shell的用户为shell,既不是app_51用户,也不在app_51群组中,所以没有权限读取这个文件.所以就出现了     Perm…
Dalvik模式 如果要解释清楚什么是ART模式,我们就需要从Android系统的应用编译模式说起,我们都知道Android系统是以Linux系统为底层构建的,Android系统是开源(源代码公开)的,Android系统势必会适配到不同硬件配置的设备上,因此谷歌为了降低应用的开发难度在Linux底层之上构筑了一个名为“Dalvik”的虚拟机. 因为Dalvik虚拟机的存在,Android系统的开发者只需使用谷歌提供的SDK(软件开发工具包)即可较为轻松的按照一套“规则”创建APP,不用顾忌硬件.…
本文转载自:http://blog.csdn.net/mu0206mu/article/details/7464987  在使用update.zip包升级时怎样从主系统(main system)重启进入Recovery模式,进入Recovery模式后怎样判断做何种操作,以及怎样获得主系统发送给Recovery服务的命令,这一系列问题的解决是通过整个软件平台的不同部分之间的密切通信配合来完成的.为此,我们必须要了解Recovery模式的工作原理,这样才能知道我们的update.zip包是怎样一步步…
Android系统中的6种模式 1:一般启动模式(normal mode):    功能是正常启动手机,方法为关机状态下按电源键启动. 2:安全模式(safe mode):    此模式和正常启动一样,但没有登记Google,所以不能访问Market或使用你的Google账号.操作方法为按住“menu”键,按电源键启动手机,直至手机启动完成松开“menu”键. 3:恢复模式(recovery mode)     可打开命令解释程序(shell),刷新映像文件(flash image),执行备份等…
转载自: http://www.linuxidc.com/Linux/2011-11/47587.htm 一.利用Android API函数查看1.1 ActivityManager查看可用内存. ActivityManager.MemoryInfo outInfo = new ActivityManager.MemoryInfo(); am.getMemoryInfo(outInfo); outInfo.availMem即为可用空闲内存. 1.2.android.os.Debug查询PSS,V…
Android系统中的进程间通信是通过一个轻量级的RPC(Remote Procedure Call远程进程调用)和AIDL(Android Interface Definination Language)规范来生成两个进程之间可以相互访问的代码.其中RPC是以接口方式来实现,客户端与被调用实现之间是通过代理模式来实现的,这些又是以JAVA的RMI和代理模式为理论基础的,若要灵活掌握这个轻量级的解决方案,有必要重新理顺这些基础知识的,这里我们先了解代理模式的相关基础, 有关代理模式的知识,可以用…
之前写过一篇“android系统如何在静音模式下关闭camera拍照声音”的博客,今天来写他的续篇,继续探讨这个问题. 公司新需求,要求在camera应用中添加一个开关,可以进行拍照声音的关闭和开启. 上篇文章解决静音不能有拍照声音用的是系统静音的property,在camera playsound()函数中来进行判断的(详见一).如何自己定义个property,使其既能有get的权限,关键是得有set权限. 其实android系统有一个service,是用来进行SystemProperty权限…
. 显示系统中全部Android平台: android list targets . 显示系统中全部AVD(模拟器): android list avd . 创建AVD(模拟器): android create avd --name 名称 --target 平台编号 . 启动模拟器: emulator -avd 名称 -sdcard ~/名称.img (-skin 1280x800) . 删除AVD(模拟器): android delete avd --name 名称 . 创建SDCard: m…
本文转载自:https://blog.csdn.net/huangyabin001/article/details/44465145 版权声明:本文为博主原创文章,未经博主允许不得转载.    https://blog.csdn.net/huangyabin001/article/details/44465145写在前面:    为了帮助理解,这里首先描述一个应用场景. 一个项目有两个版本(一个项目两个版本的原因或许是由于硬件不同导致的,如不同容量电池,不同分辨率摄像头等),在升级的时候很容易将…
本文转载自:http://blog.csdn.net/mu0206mu/article/details/7514559 在Android系统中修改android.mk使其同时编译rgb2565和rgb2888(向out/host/Linux-x86/bin/下新增加一个工具命令)                       修改对应的Android.mk文件使其在源码编译时能够同时编译出rgb2565和rgb2888,rgb2888的源码文件已有,其实实现很简单,这里只是将我在具体测试中不同模块…
Android系统有五种数据存储形式,分别是文件存储.SP存储.数据库存储.contentprovider 内容提供者.网络存储.其中,前四个是本地存储.存储的类型包括简单文本.窗口状态存储.音频视频数据.XML注册文件的各种数据.各种存储形式的特点不尽相同,因此对于不同的数据类型有着固定的存储形式,本文为演示方便给出的案例基本相同,都是是采用账号登录来演示数据存储,保存账号和密码信息,下次登录时记住账号和密码.重在说明各种存储形式的原理. 文件存储: 以I/O流的形式把数据存入手机内存或SD卡…
作者:唐老师,华清远见嵌入式学院讲师. 编译Android源码 关于android系统的编译,Android的官方网站上也给出了详细的说明.http://source.android.com/source/building.html Ø 初始化编译环境 切换到Android源码目录: [plain] view plaincopyprint? 1.   $ cd WORKING_DIRECTORY 执行下面命令,加载编译过程中用到的命令.环境变量: [plain] view plaincopypr…
作者:唐老师,华清远见嵌入式学院讲师. Android的启动速度一直以来是他的诟病,虽然现在Android设备的硬件速度越来越快,但是随着新 版本的出现,其启动速度一直都比较慢,当然,作为程序员,我们是可以理解的,智能手机本身就要启动很多服务来支持应用的功能,并且Android系统大部 分还是使用的Java语言编写的,必然要运行在Java虚拟机里,这也决定了它运行速度和启动速度都相对较慢.同时,Android系统为了在执行用户应 用程序时提高用户体验,还做了一些预加载机制,这也牺牲了开机启动时间…
近来,看了一本书,名字叫做<第一行代码>,是CSDN一名博主写的,一本Android入门级的书,比较适合新手.看了书之后,有感而发,想来进行Android开发已经有一年多了,但欠缺系统化的学习,知识杂乱无章,没有条理和总结.因此,想想我是否可以尝试的写些文章,来对自己之前学过的知识和工作经验进行归纳和整理,整理出自己的知识体系呢.所以,就有这篇文章的诞生,如果其中理解不到位的地方,望园里的兄弟姐妹给予指出错误,我们共同讨论,一起进步.我一直相信一句话,好东西要分享,不断地分享,直至温暖整个世界…
2.3编译Android源码 Android源码体积非常庞大,由Dalvik虚拟机.Linux内核.编译系统.框架代码.Android定制C库.测试套件.系统应用程序等部分组成,在编译Android源码之前,必须要先掌握Android源码的组成. 2.3.1Android源码目录结构 在Android源码中,按照不同功能代码被放在不同的目录下: 目录 描述 bionic 针对Android系统定制的仿生标准C库.链接器等所在目录,Android系统并没有使用Linux的glibc库,bioinc…
在编写Android应用程序时,我们一般将一些计算型的逻辑放在一个独立的进程来处理,这样主进程仍然可以流畅地响应界面事件,提高用户体验.Android系统为我们提供了一个Service类,我们可以实现一个以Service为基类的服务子类,在里面实现自己的计算型逻辑,然后在主进程通过startService函数来启动这个服务.在本文中,将详细分析主进程是如何通过startService函数来在新进程中启动自定义服务的. 在主进程调用startService函数时,会通过Binder进程间通信机制来…
此刻,本人还是一个android菜鸟,刚刚开始起步学习android相关知识,想用blog记录自己学习的过程,一方面给他人提供帮助,另一方面给自己个复习的地方. 在一起学习Android之前,先跟大家分享几个非常有用的网站: 1)Android developer 2)Google code 3)StackOverFlow 4)Android developers need to know 网上学习的资源到处是,我们主要是要学会择优使用,充分使用,而且较好的资源都是英文的,所以也可以一起提高英文…
Google Map(谷歌地图)是Google公司提供的电子地图服务.包括了三种视图:矢量地图.卫星图片.地形地图.对于Android系统来说,可以利用Google提供的地图服务来开发自己的一些应用.Google Map的服务体现在两个方面:地图API和位置API.使用Android Maps API(地图API)和Android Location API(定位API)可以轻松实现实用而且强大的功能. 我的位置:“我的位置”在地图上显示你的当前位置(通常在 1000 米范围之内).即使没有 GP…
首先非常感谢原文作者为我们提供的知识库,因为有你们的贡献,我们的开发难度更显简单 原文 :   http://blog.csdn.net/mr_raptor/article/details/30113417 4.3定制Android平台系统 通常产品厂商在拿到Android源码后会在Android源码基础上进行定制修改,以匹配适应自己的产品,从本节开始,我们从最原始的Android源码系统里一步一步定制出自己的Android系统.本节主要内容包含:根据Android源码,添加新产品编译项,定制系…
1. 制定smack规则 “Zygote”进程由init进程创建,它负责创建系统服务进程“systemserver”.“radio”进程和APP进程.其中“radio”进程的uid是1001,它能够实现打电话和发短信的功能,“systemserver”进程uid是1000,它负责创建系统服务组件,通讯录进程uid是10000,它能够访问通讯录数据库,uid大于等于10000的进程都属于Android应用程序进程. 为了实现对“radio”和通讯录进程的访问控制,本课题使用“libsmack”库中…