当前位置:文档之家› android 修改 system.img 方法

android 修改 system.img 方法

android 修改 system.img 方法
android 修改 system.img 方法

android 修改system.img 方法

1.前提条件

●源码下载完毕

●源码Make完成

2.修改文件

修改launcher比较容易验证。在此,修改launcher桌面图标下面文本背景色(非常简单)。找到如下图中的路径和文件,并打开。

在代码中添加下图所示代码:

3.编译打包

此步需要两个前提,四个步骤。

整体过程如下图:

4.界面验证

十分有力的证据说明本方法是切实有效的。

.

5.方法用途

建立代码和运行环境的同步对应,使单步跟踪(网上搜索如何debug framework等关键字相信会有所启发)具有实际意义。

Android Hotfix 新方案——Amigo 源码解读

Android Hotfix 新方案——Amigo 源码解读 首先我们先来看看如何使用这个库。 用法 在project 的build.gradle中 dependencies { classpath 'me.ele:amigo:0.0.3' } 在module 的build.gradle中 apply plugin: 'me.ele.amigo' 就这样轻松的集成了Amigo。 生效补丁包 补丁包生效有两种方式可以选择: ? 稍后生效补丁包 ? 如果不想立即生效而是用户第二次打开App 时才打入补丁包,则可以将新的Apk 放到/data/data/{your pkg}/files/amigo/demo.apk,第二次打开时就会自动生效。可以通过这个方法 ? File hotfixApk = Amigo.getHotfixApk(context); ?

获取到新的Apk。 同时,你也可以使用Amigo 提供的工具类将你的补丁包拷贝到指定的目录当中。 ? FileUtils.copyFile(yourApkFile, amigoApkFile); ? ? 立即生效补丁包 ? 如果想要补丁包立即生效,调用以下两个方法之一,App 会立即重启, 并且打入补丁包。 ? Amigo.work(context); ? Amigo.work(context, apkFile); ? 删除补丁包 如果需要删除掉已经下好的补丁包,可以通过这个方法 Amigo.clear(context); 提示:如果apk 发生了变化,Amigo 会自动清除之前的apk。 自定义界面 在热修复的过程中会有一些耗时的操作,这些操作会在一个新的进程中的Activity 中执行,所以你可以通过以下方式来自定义这个Activity。

Android源码下载方法详解

Android: Android源码下载方法详解 分类:Android平台 安卓源码下载地址:https://www.doczj.com/doc/6217027119.html,/source/downloading.html 相信很多下载过内核的人都对这个很熟悉 git clone git://https://www.doczj.com/doc/6217027119.html,/kernel/common.git kernel 但是这是在以前,现在如果这么执行的话,会显示如下内容 Initialized empty Git repository in /home/star/working/kernel/.git/ https://www.doczj.com/doc/6217027119.html,[0: 149.20.4.77]: errno=Connection refused fatal: unable to connect a socket (Connection refused) 通过浏览器输入https://www.doczj.com/doc/6217027119.html,/,发现该网站已经被重定向为 https://www.doczj.com/doc/6217027119.html,/source/downloading.html 可以在该页面的最后发现内核的下载方法。 下面我们介绍一下Android源码下载的步骤。 工作环境: 操作系统:Ubuntu 10.04 或Ubuntu10.10 git程序:1.7.0.4 或1.7.1 转载请注明出处:https://www.doczj.com/doc/6217027119.html,/pku_android 方法一: 1.1 初始化安装环境 参考网页https://www.doczj.com/doc/6217027119.html,/source/initializing.html 主要要做的就是安装jdk和安装一些软件包 $ sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \ libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \ libxml2-utils 如果已经安装了,就不许要这步了 1.2 无论下载内核和源码,都需要进行如下操作 参考网页https://www.doczj.com/doc/6217027119.html,/source/downloading.html $ mkdir ~/bin $ PATH=~/bin:$PATH $ curl https://https://www.doczj.com/doc/6217027119.html,/dl/googlesource/git-repo/repo > ~/bin/repo 如果出现: repo init error: could not verify the tag 'v1.12.7',

超强Android系统SD卡分区教程,加速你的Android系统

强烈分享分区软件 Acronis Disk Director Suite 10 通过读卡器给SD卡分三区的方法 Acronis Disk Director Suite 10 中文免注册版 68MB 下载地址: https://www.doczj.com/doc/6217027119.html,/groups/@g165358/259136.topic 第一步、安装 Acronis Disk Director Suite 10 中文免注册版 第二步、将SD卡插入读卡器,读卡器再插进电脑USB接口 第三步、打开我的电脑,选择SD卡盘符鼠标右键选择格式化(FAT32)不要选择快速格式化 第四步、打开电脑里面的控制面板选择管理工具选择计算机管理 现在看左边,选择储存 -> 磁盘管理 现在看右边,看到你的 SD卡分区没? 鼠标放在你的 SD卡那个分区上,鼠标右键呼出菜单,选择删除磁盘分区,OK 第五步、打开 Acronis Disk Director Suite 10 你现在实际应该选择的分区顺序和大小是: 分第一个分区“FAT32”格式大小选择,你的卡的总容

量 xxxxMB 减 580MB,得出来的就都是FAT32的空间容量 分第二个分区“EXT3”格式大小选择,580MB-96MB(EXT3这个分区,300-499MB都可以,但注意不要超过499MB)一般来说这个分区大小在四百多MB,这个分区分的时候需要注意,这个区分完后剩余的空间大小不能超过96MB,推荐剩余94.13M,留给最后的一个分区就行了 分第三个分区“Linux交换”格式大小嘛,最后的都是它的咯,推荐94.13M 以上分区的时候,你之前划拨的空间与出来以后显示大小,肯定数字上有出入,这个正常,不去管它,你只要确认你分出来以后的大小就行了! 下面的第18步之前,你要确认你分的区是上面说的三个区,且 ETX3格式分区没有超过499MB、Linux交换格式分区没有超过96MB(或者说94.13MB), 1.点选已删除分区的SD卡,创建新的分区

Android源代码结构分析

目录 一、源代码结构 (2) 第一层次目录 (2) bionic目录 (3) bootloader目录 (5) build目录 (7) dalvik目录 (9) development目录 (9) external目录 (13) frameworks目录 (19) Hardware (20) Out (22) Kernel (22) packages目录 (22) prebuilt目录 (27) SDK (28) system目录 (28) Vendor (32)

一、源代码结构 第一层次目录 Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,代码包经过解压缩后,第一级别的目录和文件如下所示: . |-- Makefile (全局的Makefile) |-- bionic (Bionic含义为仿生,这里面是一些基础的库的源代码) |-- bootloader (引导加载器),我们的是bootable, |-- build (build目录中的内容不是目标所用的代码,而是编译和配置所需要的脚本和工具) |-- dalvik (JAVA虚拟机) |-- development (程序开发所需要的模板和工具) |-- external (目标机器使用的一些库) |-- frameworks (应用程序的框架层) |-- hardware (与硬件相关的库) |-- kernel (Linux2.6的源代码) |-- packages (Android的各种应用程序) |-- prebuilt (Android在各种平台下编译的预置脚本) |-- recovery (与目标的恢复功能相关) `-- system (Android的底层的一些库)

Android USB 驱动分析

Android USB 驱动分析 一、USB驱动代码架构和使用 1、代码简介 USB驱动代码在/drivers/usb/gadget下,有三个文件:android.c, f_adb.c, f_mass_storage.c;g_android.ko 是由这三个文件编译而来,其中android.c 依赖于 f_adb.c 和 f_mass_storage.c(这两个文件之间无依赖关系)。 可在android.c中看到: static int __init android_bind_config(struct usb_configuration *c) { struct android_dev *dev = _android_dev; int ret; printk(KERN_DEBUG "android_bind_config\n"); ret = mass_storage_function_add(dev->cdev, c, dev->nluns); if (ret) return ret; return adb_function_add(dev->cdev, c); } 2、驱动使用 要使USB mass storage连接到主机: 打开/sys/devices/platform/usb_mass_storage/lun0/file文件,向 file文件写入一个存储 设备的路径,例如/dev/block/vold/179:0 (major:minor)路径; 这里的usb_mass_storage根据实际应用可以改的,由 platform_device_register函数的参数决 定。 例如: static struct platform_device fsg_platform_device = { .name = "usb_mass_storage", .id = -1, }; static void __init tegra_machine_init(void) { .... (void) platform_device_register(&fsg_platform_device); .... }

android vold学习总结

vold学习总结 V old(volume daemon):源码路径android/system/vold,部分引用代码位于android/system/core/libsysutils/src,android/system/core/include/sysutils/下。 它用于管理和控制android平台的外部设备,包括u盘、sd卡等的插入,拔出和格式化等。V old为守护进程,由init进程启动,V old的框架如下图所示: Linux kernel与vold进程通过netlink机制进行跨进程通信,vold中的NetlinkManager 接收来自linux kernel上报的uevent事件,然后将其转换成一个NetlinkEvent类型,并调用V olumeManager类的相应方法进行处理,V olumeManager会将处理的结果发送给MountService,VolumeManager与MountService之间通过CommandListener机制进行通信,本质是通过socket进行跨进程通信,MountService运行在SystemServer进程中。 Uevent事件内容就是一个字符串,linux kernel在下列两种情况下会上报uevent事件: 1.外设状态发生变化触发,当有U盘、sd卡等外设的插拔动作时,都会引起linux kernel 上报uevent事件,如果vold在外设状态发生变化之前已经建立了netlink连接,就能收到相应的uevent事件。 2.在/sys目录下会有一个叫做uevent的文件,往该文件中写入特定的数据,也会触发kernel发送和该设备相关的uevent事件,这个由应用层触发,例如vold启动时,会往uevent 文件中写入数据,它就会触发linux kernel发送uevent事件,这样vold就能获取设备的当前信息。 在etc/目录下有个vold.fstab文件(实际上该文件是在system/etc目录下,它在system/core/rootdir/init.rc中有配置:symlink /system/etc /etc,通过软链接而链接到etc目录下),该文件是android系统与硬件平台交互的接口,用户可以手动配置该文件,在 android\system\core\rootdir\etc\下有个vold.fstab文件,它描述了vold.fstab文件配置挂载设备的模板, dev_mount

Android 串口编程原理和实现方式附源码

提到串口编程,就不得不提到JNI,不得不提到JavaAPI中的文件描述符类:。下面我分别对JNI、以及串口的一些知识点和实现的源码进行分析说明。这里主要是参考了开源项目android-serialport-api。 串口编程需要了解的基本知识点:对于串口编程,我们只需对串口进行一系列的设置,然后打开串口,这些操作我们可以参考串口调试助手的源码进行学习。在Java中如果要实现串口的读写功能只需操作文件设备类:即可,其他的事都由驱动来完成不用多管!当然,你想了解,那就得看驱动代码了。这里并不打算对驱动进行说明,只初略阐述应用层的实现方式。 (一)JNI: 关于JNI的文章网上有很多,不再多做解释,想详细了解的朋友可以查看云中漫步的技术文章,写得很好,分析也很全面,那么在这篇拙文中我强调3点: 1、如何将编译好的SO文件打包到APK中?(方法很简单,直接在工程目录下新建文件夹libs/armeabi,将SO文件Copy到此目录即可) 2、命名要注意的地方?(在编译好的SO文件中,将文件重命名为:lib即可。其中是编译好后生成的文件) 3、MakeFile文件的编写(不用多说,可以直接参考package/apps目录下用到JNI的相关项目写法) 这是关键的代码: [cpp]view plaincopy

(二):

文件描述符类的实例用作与基础机器有关的某种结构的不透明句柄,该结构表示开放文件、开放套接字或者字节的另一个源或接收者。文件描述符的主要实际用途是创建一个包含该结构的或。这是API的描述,不太好理解,其实可简单的理解为:就是对一个文件进行读写。 (三)实现串口通信细节 1) 建工程:SerialDemo包名:org.winplus.serial,并在工程目录下新建jni和libs两个文件夹和一个org.winplus.serial.utils,如下图: 2) 新建一个类:SerialPortFinder,添加如下代码: [java]view plaincopy 1.package org.winplus.serial.utils; 2. 3.import java.io.File; 4.import java.io.; 5.import java.io.IOException; 6.import java.io.LineNumberReader; 7.import java.util.Iterator; 8.import java.util.Vector; 9. 10.import android.util.Log; 11. 12.public class SerialPortFinder { 13. 14.private static final String TAG = "SerialPort"; 15.

App工程结构搭建:几种常见Android代码架构分析

App工程结构搭建:几种常见Android代码架构分析 关于Android架构,因为手机的限制,目前我觉得也确实没什么大谈特谈的,但是从开发的角度,看到整齐的代码,优美的分层总是一种舒服的享受的。 从艺术的角度看,其实我们是在追求一种美。 本文先分析几个当今比较流行的android软件包,最后我们汲取其中觉得优秀的部分,搭建我们自己的通用android工程模板。 1. 微盘 微盘的架构比较简单,我把最基本,最主干的画了出来: 第一层:com.sina.VDisk:com.sina(公司域名)+app(应用程序名称) 。 第二层:各模块名称(主模块VDiskClient和实体模块entities)第三层:各模块下具体子包,实现类。 从图中我们能得出上述分析中一个最简单最经典的结构,一般在应用程序包下放一些全局的包或者类,如果有多个大的模块,可以分成多个包,其中包括一个主模块。 在主模块中定义基类,比如BaseActivity等,如果主模块下还有子模块,可以在主模块下建立子模块相应的包。说明一点,有的时候如果只有一个主模块,我们完全可以省略掉模

块这一层,就是BaseActivity.java及其子模块直接提至第二层。 在实体模块中,本应该定义且只定义相应的实体类,供全局调用(然而实际情况可能不是这样,后面会说到)。在微盘应用中,几乎所有的实体类是以xxx+info命名的,这种命名也是我赞成的一种命名,从语义上我觉得xxxModel.java这种命名更生动更真实,xxxModel给我一种太机械太死板的感觉,这点完全是个人观点,具体操作中以个人习惯为主。还有一点,在具体的xxxInfo,java中有很多实体类中是没有get/set的方法,而是直接使用public的字段名。这一点,我是推荐这种方式的,特别是在移动开发中,get/set方法很多时候是完全没有必要的,而且是有性能消耗的。当然如果需要对字段设置一定的控制,get/set方法也是可以酌情使用的。 2. 久忆日记 相比于微盘的工程结构,久忆日记的结构稍微复杂了一些。如下图: 1).第一层和前面微盘一样的. 2).第二层则没有模块分类,直接把需要的具体实现类都放在下面,主要日记的一些日记相关的Activity。 3).第二层的实体包命令为model包,里面不仅存放了实体类

最全的Android源码目录结构详解

最全的Android源码目录结构详解 Android 2.1 |-- Makefile |-- bionic (bionic C库) |-- bootable (启动引导相关代码) |-- build (存放系统编译规则及generic等基础开发包配置) |-- cts (Android兼容性测试套件标准) |-- dalvik (dalvik JAVA虚拟机) |-- development (应用程序开发相关) |-- external (android使用的一些开源的模组) |-- frameworks (核心框架——java及C++语言) |-- hardware (部分厂家开源的硬解适配层HAL代码) |-- out (编译完成后的代码输出与此目录) |-- packages (应用程序包) |-- prebuilt (x86和arm架构下预编译的一些资源) |-- sdk (sdk及模拟器) |-- system (底层文件系统库、应用及组件——C语言) `-- vendor (厂商定制代码) bionic 目录 |-- libc (C库) | |-- arch-arm (ARM架构,包含系统调用汇编实现) | |-- arch-x86 (x86架构,包含系统调用汇编实现) | |-- bionic (由C实现的功能,架构无关) | |-- docs (文档) | |-- include (头文件) | |-- inet (?inet相关,具体作用不明) | |-- kernel (Linux内核中的一些头文件) | |-- netbsd (?nesbsd系统相关,具体作用不明) | |-- private (?一些私有的头文件) | |-- stdio (stdio实现) | |-- stdlib (stdlib实现) | |-- string (string函数实现) | |-- tools (几个工具) | |-- tzcode (时区相关代码) | |-- unistd (unistd实现) | `-- zoneinfo (时区信息) |-- libdl (libdl实现,dl是动态链接,提供访问动态链接库的功能)|-- libm (libm数学库的实现,) | |-- alpha (apaha架构) | |-- amd64 (amd64架构) | |-- arm (arm架构) | |-- bsdsrc (?bsd的源码)

改变Android手机软件安装位置的解决办法(精)

改变 Android 手机软件安装位置的解决办法 谷歌 Android 系统手机默认只能把软件安装在手机内存里,使本来就不大的手机内存显得捉襟见肘。如果你也是个手机软件狂人,喜欢尝试各种各样新奇有趣的软件,面对越来越少的手机内存空间,不得不对已经安装的软件痛下 **。你是否还在安装与卸载之间纠结? Follow Me!我们一起来给 Android 系统扩扩容,让“ 机器人” 也可以“ 大肚能容” ,免去存储空间不足的后顾之忧。 Tips :存储器分为随机存储器(RAM 和只读存储器(ROM 两种。手机 ROM 相当于 PC 上的硬盘, 用于存储手机操作系统和软件, 也叫 FLASH ROM, 决定手机存储空间的大小。手机 RAM 相当于 PC 的内存,其大小决定手机的运行速度。 要把大象装冰箱里总共分三步, 而 Android 系统中把软件安装到 SD 卡上, 比这还简单, 两步就够了: 一、存储卡分区 首先我们需要对手机 SD 卡进行分区, 分一个 FAT32分区和一个 Ext3分区, FAT32分区用于正常存储图片、音乐、视频等资料,而 Linux 格式的 Ext3分区就是用于扩容安装软件的分区。以笔者的 2G SD卡为例, FAT32分区 1.35GB , Ext3分区 494MB 。下载并安装 Acronis Disk Director Suite 软件。将手机 SD 卡装入读卡器并连接电脑,然后运行 Acronis Disk Director Suite软件。 1.FAT32分区。找到代表 SD 卡的磁盘分区,点击右键,选择“ 删除” 命令,删除已有分区。当成为“ 未分配” 分区时,点击右键,选择“ 创建分区” ,在弹出的对话框中,文件系统选择: FAT32,创建为“ 主分区” ,设置好分区大小 1.35GB ,点击确定按钮。 2. Ext3分区。在剩余的 494MB 分区上,点击右键,选择“ 创建分区” ,在弹出的对话框中, 文件系统选择:Ext3,创建为“ 主分区” ,设置好分区大小 494MB ,点击确定按钮。

android手机micro sd卡的EXT2,EXT3分区教程

下面就介绍利用 分区软件Acronis Disk Director Suite 10 通过读卡器给SD卡分三区的方法 (注意,这个方法只能用读卡器,手机U盘模式不行) Acronis Disk Director Suite 10 中文免注册版68MB 下载地址: https://www.doczj.com/doc/6217027119.html,/groups/@g165358/259136.topic 第一步、安装Acronis Disk Director Suite 10 中文免注册版 第二步、将SD卡插入读卡器,读卡器再插进电脑USB接口 第三步、打开我的电脑,选择SD卡盘符鼠标右键选择格式化(FAT32)不要选择快速格式化 第四步、打开电脑里面的控制面板选择管理工具选择计算机管理 现在看左边,选择储存-> 磁盘管理 现在看右边,看到你的SD卡分区没? 鼠标放在你的SD卡那个分区上,鼠标右键呼出菜单,选择删除磁盘分区,OK 第五步、打开Acronis Disk Director Suite 10 (这一步照抄啊兴的咸湿教程) 但是要强调的是 1,啊兴的这个只做了FAT32和EXT2两个分区,你现在要做的是分别选择FAT32、EXT3、Linux交换三个分区,而不是下面教程里面的两个。这个要注意了! 2, 这个看来要强调一下了,根据经验来看分区先后顺序有的机子没什么要求,而有的机子必须按照先FAT32 再EXT3 最后Linux交换的顺序来分区!如果你没什么经验,还是保守的按照这个顺序来吧! 3,啊兴的这个是256MB 的卡,下面的分区大小不要跟着学 你现在实际应该选择的分区顺序和大小是: 分第一个分区“FAT32”格式大小选择,你的卡的总容量xxxxMB 减580MB,得出来的就都是FAT32的空间容量 分第二个分区“EXT3”格式大小选择,580MB-96MB(EXT3这个分区,300-499MB都可以,但注意不要超过499MB)一般来说这个分区大小在四百多MB,这个分区分的时候需要注意,这个区分完后剩余的空间大小不能超过96MB,推荐剩余94.13M,留给最后的一个分区就行了 分第三个分区“Linux交换”格式大小嘛,最后的都是它的咯,推荐94.13M

android源码分析精典

Android 2.1 源码结构分析 lee Android 2.1 |-- Makefile |-- bionic (bionic C库) |-- bootable (启动引导相关代码) |-- build (存放系统编译规则及generic等基础开发包配置)|-- cts (Android兼容性测试套件标准) |-- dalvik (dalvik JAVA虚拟机) |-- development (应用程序开发相关) |-- external (android使用的一些开源的模组) |-- frameworks (核心框架——java及C++语言) |-- hardware (主要保护硬解适配层HAL代码) |-- out (编译完成后的代码输出与此目录) |-- packages (应用程序包) |-- prebuilt (x86和arm架构下预编译的一些资源) |-- sdk (sdk及模拟器) |-- system (文件系统库、应用及组件——C语言) `-- vendor (厂商定制代码) bionic 目录 |-- libc (C库) | |-- arch-arm (ARM架构,包含系统调用汇编实现) | |-- arch-x86 (x86架构,包含系统调用汇编实现) | |-- bionic (由C实现的功能,架构无关) | |-- docs (文档) | |-- include (头文件) | |-- inet (?inet相关,具体作用不明) | |-- kernel (Linux内核中的一些头文件) | |-- netbsd (?nesbsd系统相关,具体作用不明) | |-- private (?一些私有的头文件) | |-- stdio (stdio实现) | |-- stdlib (stdlib实现) | |-- string (string函数实现) | |-- tools (几个工具) | |-- tzcode (时区相关代码) | |-- unistd (unistd实现) | `-- zoneinfo (时区信息) |-- libdl (libdl实现,dl是动态链接,提供访问动态链接库的功能) |-- libm (libm数学库的实现,) | |-- alpha (apaha架构) | |-- amd64 (amd64架构) | |-- arm (arm架构)

手机的分区信息详解

第一章手机的分区: modem分区:存放基带相关的文件,大家通常所刷基带就是刷写modem分区。 bootloader分区:bootloader分区分成两个部分,分别叫做primary bootloader和secondary stagebootloader。Primary bootloader主要执行硬件检测,确保硬件能正常工作后将secondary stage bootloader拷贝到内存(RAM)开始执行。Secondary stage bootloader会进行一些硬件初始化工作,获取内存大小信息等,然后根据用户的按键进入到某种启动模式,比如大家所熟知的通过电源键和其它一些按键的组合,可以进入到recovery,fastboot或者选择启动模式的启动界面等。我们天机的FTM模式指的就是secondary stage bootloader。 boot分区:当按下电源键开机时,手机会进入正常启动模式。Secondary stage bootloader 会从boot分区开始启动。Boot分区的格式是固定的,首先是一个头部,然后是Linux内核,最后是用作根文件系统的ramdisk。解包过boot.imgde 同学肯定知道,解开之后就是一个叫做ramdisk的文件夹。当Linux内核启动完毕后,就开始执行执行根文件系统中的init程序,init 程序会读取启动脚本文件(init.rc和init.xxxx.rc)。 根文件系统中有一个重要的配置文件,叫default.prop,该文件的内容一般为: ro.secure=1 ro.allow.mock.location=1(是否允许模拟位置,在开发者选项里面也有) ro.debuggable=0 persist.service.adb.enable=1(是否默认打开USB调试,如果没有这一句,可以自己加在最后)这里大家需要注意的两属性ro.secure和ro.debuggable,如果ro.secure=0则允许我们运行adb root命令,通常大家说说内核ROOT指是就是ro.secure=0。而一般所说的ROOT权限指的是手机上有一个名为授权管理的程序(如:Superuser.apk)可以授予程序root用户的权限。 recovery分区:当进入recovery模式时,secondarystage bootloader从recovery分区开始启动,recovery分区是一个独立的Linux系统,当recovery分区上的Linux内核启动完毕后,开始执行第一个程序init。Init会启动一个叫recovery的程序。通过recovery程序,用户可以执行清除数据,安装刷机包等操作。 system分区:也就是我们通常的Rom存放的地方了,通常情况下,我们说的刷机就是刷写这个分区,这个分区比较重要,也是重点,将在下一章介绍。 data分区:我们自己安装在手机中的APP就放在在data/app目录下,所有的android程序生成的数据基本上都保存在data/data目录下。在recovery下Wipe data实质上就是格式化data 分区,这样我们安装的所有APP和程序数据都丢失了,也就相当于恢复出厂设置。 Cache分区:用来缓存一些文件的,比如在Google Play下载的东西。可以放心地在recovery

Android Galler2源码分析

图库Gallery2 Gallery2主要功能是实现本地存储器、MTP存储器和网络存储器中媒体(图像和视频)的浏览、显示和更多操作(删除、分享、选择和缩放等)。下面用一张简单的用例图描述了Gallery2的功能和职责。 Gallery 主要是4个页面的跳转: AlbumSetPage.Java(相册缩略图); AlbumPage.java(单个相册照片缩略图); PhotoPage.java(单张照片); SlideShowPage.java(幻灯片界面); 跳转过程: AlbumSetPage.Java→AlbumPage.java→PhotoPage.java SlideShowPage.java是单独的。 这些界面类父类为ActivityState.java;这些界面的切换由StateManager.java负责。 1 界面跳转过程: 在Galley2模块,我们先从程序的入口看起,在androidManifest.xml中注册Application标签(Android 系统会为每个程序运行时创建一个Application的类对象且仅创建一个,他的生命周期等于这个程序的生命周期,它是全局的单实例的,一般做一些全局的初始化操作),应用创建时就会被初始化,维护应用内部全局数据,主要看几个函数:initializeAsyncTask(), GalleryUtils.initialize(this),GalleryUtil是Gallery的工具类,获得了屏幕参数,WindowManager,Resource等

Gallery 从launcher进入Gallery,进入GalleryActivity.ava @Override protected void onCreate(Bundle savedInstanceState) { …... setContentView(https://www.doczj.com/doc/6217027119.html,yout.main); if (savedInstanceState != null) { getStateManager().restoreFromState(savedInstanceState); } else { initializeByIntent(); } } private void initializeByIntent() { Intent intent = getIntent(); String action = intent.getAction(); if (Intent.ACTION_GET_CONTENT.equalsIgnoreCase(action)){ startGetContent(intent); } else if(Intent.ACTION_PICK.equalsIgnoreCase(action)) { // We do NOT really support the PICKintent. Handle it as // the GET_CONTENT. However, we needto translate the type // in the intent here. Log.w(TAG, "action PICK is notsupported"); String type =Utils.ensureNotNull(intent.getType()); if(type.startsWith("vnd.android.cursor.dir/")) { if(type.endsWith("/image")) intent.setType("image/*"); if(type.endsWith("/video")) intent.setType("video/*"); } startGetContent(intent);

安卓重新分区扩展DATA空间 5d成功

5D重新分区成功,扩展data空间,附教程 因为一般情况下,我们都使用SD卡的,所以内置SD卡的空间形同虚设,所以将内置SD 卡的空间的1G分给了data,以扩大用户空间来安装软件,免除app2sd之类的麻烦!废话不多说,下面上教程! 教材开始前提醒一下,重新分区操作极度危险,很容易制造砖头的,小白千万不要轻易尝试,若期间发生什么事情而变砖,本人概不负责! 另外感谢G大在U8800Pro发的教程:http://bbs.隔壁/thread-4873453-1-1.html(因为涉及复制粘贴,格式出现点错误,忽略各行代码前的数字编码,必要时参考U880pro原帖) 一、解锁,刷入recovery(这是废话,忽略我); 大家可以可以听一下G大的建议使用的recovery是G大的6.0.1.2,据说不会出现recovery 无故重启的情况,下载地址:http://bbs.隔壁/thread-5540158-1-1.html (其实只要可以在recovery模式下打开adb模式的,这个谁的recovery都是应该可以的) 二、安装ADB,将下面的包中文件解压到c:/windows下面,下载ADB.zip,并解压 下载地址:htt删除我p://bb删除我s.隔壁/thread-4873453-1-1.html(这也就是我的参考教材) 三、重启到recovery,用USB线将手机连接到电脑,这个时候你会发现电脑有一个未安装驱动的设备Android,这里我下载了很多驱动都不行,最后装了个电脑版的91手机助手,然后提示安装驱动,这样才把驱动的事情解决了!之后在电脑的设备管理里可以看到一个叫"Adb Device"的设备,如图:

线刷包修改oppo r831t分区---MTK-有Android_scatter文件通用-用SP-flash-tool工具刷入

调整 data . cache system 分区大小打开线刷 OPPO R831T 刷机包,会看到一些文件 这里说下每个刷机文件对应的文件名 PRELOADER→preloader.bin MBR→MBR EBR1→EBR1 UBOOT→lk.bin BOOTIMG→boot.img RECOVERY→recovery.img SEC_RO→secro.img

LOGO→logo.bin EBR2→EBR2 ANDROID→system.img 这就是线刷工具能识别到的文件名,一定要改成对应的名称 要打开 MT6572_Android_scatter_emmcTXT 这个时候就要用到Notepad++ 了,打开桌面上的新建文件夹单机scatter_emmc.txt文件,再用Notepad++打开 于是看到一下内容 ############################################################################## ############################## # # General Setting # ############################################################################## ############################## - general: MTK_PLATFORM_CFG info: - config_version: V1.1.1 platform: MT6572 project: OPPO72_13079 storage: EMMC boot_channel: MSDC_0 block_size: 0x20000 ############################################################################## ############################## # # Layout Setting # ############################################################################## ##############################

Android系统分析

Android操作系统分析 穆英华 基于Linux内核的Android操作系统尽管非常年轻,却已经占领了智能手机9%的市场,而且还在向其它移动平台及嵌入式领域迅速扩张着。下图为2010年一季度的智能手机操作系统占有率统计。在国内外制造商纷纷推出基于Android的产品、Android Market中的应用程序飞速增长的背景下,有必要对Android操作系统的情况进行调研,对比其与Midinux的优劣势、估计其机遇或威胁。本文将从以下几个方面分析Android:目标用户群、支持硬件架构、平台技术架构、应用程序数量、未来发展方向。 一.目标用户群 覆盖高、中、低端智能手机用户是Android的主要目标,尤其是市场上基于ARM11处理器的智能手机已经降到1000元人民币的价格,让低成本的硬件配置也可以运行Android系统,更使得Android从中高端扩展到低端成为可能。除智能手机外,Android已经渗透到了平板电脑、上网本,乃至汽车电子、机顶盒、电子相册、无绳电话等各移动平台和嵌入式产品领域。 对于Android的智能手机和平板电脑用户,Android Market中种类丰富和数量众多的应用程序是其选择Android的重要原因,没有众多可选择的第三方应用程序,操作系统就是再性能优异,也不会对用户有任何杀伤力。这一点类似于苹果的iOS,但总体来说,Android 的用户不会像苹果用户那样忠诚、他们中的很大一部分也不会像苹果用户那样为数码产品花费那么多金钱,可以说Android更大众一些。 二. 支持硬件架构 1.支持的硬件架构 目前Android已经移植到了ARM、X86、M IP S各体系架构中的很多处理器核、处理器芯片、以及更多的板级结构上,对PPC等体系架构的移植也早已开始。如高通、三星等芯片制造商推出的基于ARM C ortex-A8处理器核及P o w er V R显示核心的处理器芯片早已移植Android成功,并被联想的Le Ph one、魅族的M9等许多手机采用,多核的C ortex-A9也蓄势待发。随着

【修订说明】深标修订-密度分区(公示版-2017-11-28)

附件2:《深圳市城市规划标准与准则》局部修订(第4章密度分区与容积率)修订说明 在深圳市城市总体规划的指导下,结合深圳容积率管理实践与经验,以促进土地集约节约利用、加强生态环境与特色风貌保护、保证土地开发权益的公平性为指导思想,本次对《深圳市城市规划标准与准则》(以下简称《深标》)中“第4章密度分区与容积率”的相关内容进行了优化调整。相关内容修订说明如下: 一、城市密度分区 (一)本次修订结合城市总体规划,对应其城市结构中的中心体系,将各级中心区的核心地区分别纳入密度一区、二区、三区。 (二)本着促进原特区内外一体化发展、疏解中心城区过高密度的原则,增量适度向原特区外倾斜,平衡原特区内外差异。缩小了原特区内密度一区的范围,增加了原特区外密度一区、二区的范围。 (三)适度提高城市开发总量,“有保有压”,落实城市差异化发展目标。除密度一区、二区外,将大部分城市建设区纳入密度三区;同时对密度四区、五区进行了明确的界定与严格的管控,密度四区主要为二级水源保护区范围内的地区及生态景观敏感区,密度五区主要为东部滨海一线地区及福田红树林自然保护区周边地区。 (四)取消了原密度六区,部分滨海、滨水地区纳入密度五区,机场、码头、港口、核电站等特殊管理地区不再纳入密度分区管制。 二、地块容积及地块容积率

(一)地块容积 现阶段我市规划管理面临由地块管理转向地块和单元管理并存的方式转变,为更好的衔接规划编制与管理,本次修订采用了地块“容积”的表述。另外,随着地下空间开发日益普遍,本次修订将地下空间中的规定建筑面积纳入“容积”统一管理,进一步规范了地下空间管理。本次修订引入的“容积”明确为:容积 = 地上规定建筑面积+地下规定建筑面积,其中地下规定建筑面积主要指地下经营性面积,不含配建地下车库、设备用房、民防设施、公共交通等面积。 (二)地块容积率 本次修订在国家规范与原《深标》的基础上,结合规划管理实际情况,明确容积率为:容积率 = 容积/地块面积=(地上规定建筑面积+地下规定建筑面积)/地块面积。 (三)容积计算公式 取消了原地块容积率计算公式,改为“容积”计算公式。容积由基础容积、转移容积、奖励容积三部分组成。容积转移与奖励政策,是适应我市存量发展阶段规划管理精细化要求的应对手段之一。 地块容积转移,是指因为特定原因,如地块内的全部或部分用地规划用于历史文化保护、生态修复、公共空间、交通市政设施、公共配套设施等用途,从而导致地块开发强度降低乃或无法用于开发,通过容积转移,将一部分建筑面积转移至可开发用地,从而促进前述公共用途的顺利实施。地块容积奖励,是指因在地块内规划符合公共利益的用途,如公共配套设施、交通市政设施、保障房等用途,并依据

相关主题
文本预览
相关文档 最新文档