- 浏览: 35407 次
- 性别:
- 来自: 北京
最新评论
文章列表
Android学习规划和学习资料
最近经常被问起如何更深入学习Android,在这里分享一些学习经验。
一、应用层:
应用层的书没有特别好的,内容都大同小异。推荐下面的学习资料:
1. Android developer网站http://developer.android.com
Android developer网站提供了熟悉Android系统最权威的资料,这里包含了Android所有概念的详细解释。
2. Android SDK示例程序
AndroidSDK示例程序,位于sdk/samples目录下,提供了大量的案例程序(demo)。是熟悉应用程序和学习Android A ...
练习:从jni层获得一个字符串,在屏幕上显示,当然是手机屏幕
要求:
1.需要包含三层结构:JNI, java framework, java application
2.字符串的内容为“Hello from JNI !”,必须在JNI层定义
这个练习是在Android的源码工程下做的,我的Android ...
分析Android framework源码中JNI的实现调用过程及其加深对JNI技术的理解。
1..frameworks/base/core/jni,编写native代码(cpp)
2.修改frameworks/base/core/jni/Android.mk,将native代码编译产生libtest_framework.so
3.修改framework/base/data/etc/platform.xml,添加library com.test.framework.jar
4.frameworks/base/test_framework编写loadLibrary的类,并将其编译出com.test ...
android中c/c++程序的调试(eclipse)
1. 使用gdbserver调试
使用JDWP只能调试java层面的程序,如果想调试C层面的代码,需要使用gdbserver方式,gdbserver的服务端和客户端都包含在android的源码中。
server端是out/target/product/xxxxxx/system/bin/gdbserver。
client端是prebuild/linux-x86/toolchain/xxxxxx/bin/arm-eabi-gdb),不需另外安装。
(请看完本文再开始调试,尤其是“注意”部分)
本文依据张博的调试文档, 加以 ...
BatteryService作为电池及充电相关的服务,它的实现非常简单:
o 监听UEvent,读取sysfs里中的状态。
实现了一个UEvent的观察者。uevent是Linux内核用来向用户空间主动上报事件的机制,对于JAVA程序来说,只实现UEventObserver的虚函数onUEvent,然后注册即可。
private UEventObserver mUEventObserver = new UEventObserver() {
@Override
public void onUEvent(UEventObserver.UEvent eve ...
电池的信息,电压,温度,充电状态等等,都是由BatteryService来提供的。BatteryService是跑在system_process当中,在系统初始化的时候启动,如下
在BatteryService.java中:
Log.i(TAG, "Starting Battery Service.");
BatteryService battery = new BatteryService(context);
ServiceManager.addService("battery", ...
关于Android系统中system.img和data.img中文件系统的权限设置【转】
2010-07-06 09:33
转自:http://blog.chinaunix.net/u3/103613/showart_2218437.html
in system.img and data.img, we can find directory and files have their own UID/GID, and also access permission.
but in Android build environment, they have not been given the con ...
Android权限机制总结与常见权限不足问题分析
2010-07-14 16:18
Android系统是运行在Linux内核上的,Android与Linux分别有自己的一套严格的安全及权限机制,
很多像我这样的新手,尤其是习惯了windows低安全限制的用户,很容易在这方面弄 ...
android开发需要处理at命令
win下用超级终端连接设备
1.首先将设备连接到电脑,然后在我的设备管理里查看相应的端口入com11
2.新建超级终端,设置该端口号
3.设置bit率115200,不同产品设置不同
4.在超级终端的属性界面里,将回显等选项选中
输入at返回ok,标示链接成功
如果设备已经连接上,但无法输入数据,就是回显功能没选中,或者端口号设置不正确,或者bit率不对
5.如果显示双字母,就输入at e0
刚看到时有一些不理解,后来查了一些资料,对自己有很大帮助,我对synchronized的用法的理解是:
先是synchronized的适用场合,对象,作用以及必要性和副作用
场合:多线程并发访问资源
作用:为资源(比如变量,结构,文件等)加锁
副作用:同步造成延迟等待,没有多线程环境的情况下不要使用,用了这个关键字可以保证安全性,但同时效率就会有所降低。
例子?简单的:
一:多个客户端(jsp?servlet?)访问一个静态全局变量
Object xxx = ...getApplicationObject();
synchronized(xxx){
//更新该变量
}
二:有些容器也 ...
View中的setTag(Onbect)表示给View添加一个格外的数据,以后可以用getTag()将这个数据取出来。
可以用在多个Button添加一个监听器,每个Button都设置不同的setTag。这个监听器就通过getTag来分辨是哪个Button 被按下。
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class Main exte ...
Android给每个APK进程分配一个单独的用户空间,其manifest中的userid就是对应一个Linux用户
(Android 系统是基于Linux)的.
所以不同APK(用户)间互相访问数据默认是禁止的.
但是它也提供了2种APK间共享数据的形式:
1. Share Preference. / Content Provider
APK可以指定接口和数据给任何其他APK读取. 需要自己实现接口和Share的数据.
本文对于这个不做详细解释
2. Shared User id
通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中. ...
位运算口诀:
清零取反要用与,某位置一可用或
若要取反和交换,轻轻松松用异或
移位运算
要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。
2 " < <" 左移:右边空出的位上补0,左边的位将从字头挤掉,其值相当于乘2。
3 ">>"右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机系统。
4 ">>>"运算符,右边的位被挤掉,对于左边移出的空位一概补上0。
位运算符的应用 (源操 ...
原帖:http://mmmyddd.freeshell.net/wiki/index.html
Contents [Hide]
1 Android Source Code Download
1.1 Website
1.2 Create Directory
1.3 Donwload Tool Chain
1.4 下载Android平台源代码
2 编译Android平台以及SDK
2.1 完全编译
2.2 模块编译
2.3 增量编译的步骤
Android Source Code Download
Website
android的最新源代码下载的官方网站是:http://source.android. ...
一、获取Android源代码
Git是Linux Torvalds(Linux之父)为了帮助管理Linux内核开发而开发的一个开放源码的分布式版本控制软件,它不同于Subversion、CVS这样的集中式版本控制系统。在集中式版本控制系统中只有一个仓库(Repository),许多个工作目录(Working Copy),而在Git这样的分布式版本控制系统中(其他主要的分布式版本控制系统还有BitKeeper、Mercurial、GNU Arch、Bazaar、Darcs、SVK、Monotone等),每一个工作目录都包含一个完整仓库,它们支持离线工作,本地提交可以稍后提交到服务器上。
...