androidmanager
㈠ Android SDk Manager 是做什么用的
android
虚拟设备管理
Android
Virtual
Device
Manager
以下为直接复制粘贴内容:
AVD的全称为:Android
Virtual
Device,就是Android运行的虚拟设备,他是Android的模拟器识别。建立的Android要运行,必须创建AVD,每个AVD上可以配置很多的运行项目。
创建AVD的方法又两种。一是通过Elcipse开发环境,二是通过命令行创建。
Eclipse开发环境创建:
选择Eclipse菜单中Windows菜单下的Android
AVD
Manager.
在name中输入AVD的名称,Target中选择我们使用的类库(Android
1.1、Android1.5或者Google
APIs
1.5),创建SDCard和皮肤,点击Finish按钮就可以了。
命令行创建:
在命令行方式中找到Tools的路径,输入命令:android
create
avd
--target
2
--name
my_avd
其中android是命令,后面是参数,Create
avd是创建AVD,target
2是等级,name是Avd的名称。
㈡ 如何卸载android sdk manager
方法
1、首先打开控制面板选项(这是在桌面或者开始菜单里面有),然后选择程序和功能选项,点击进入找到图中的选项双击或者右击点击卸载按钮。
发展情况
Android项目目前正在从手机运营商、手机厂商、开发者和消费者那里获得大力支持。谷歌移动平台主管安迪·鲁宾(Andy Rubin)表示,与软件开发合作伙伴的密切接触正在进行中。
从2007年11月开始,谷歌开始向服务提供商、芯片厂商和手机销售商提供Android平台,并组建“开放手机联盟”。
㈢ android sdk manager是做什么用的
是用来安装Android SDK的,在里面选择要安装的Android版本
㈣ androidsdkmanager点了没反应然后出现一下现象........怎么解决!
应该对你有帮助的!1.首先点击电脑左下方-》开始-》运行,输入cmd进入命令提示符。2.输入java-version,看是否有显示。3.如果提示错误,则需要设置本地jdk的环境变量,这里不多说,网上有很多讲解。4.如果显示版本,注意,看看这里的版本号是否与你本地jdk版本一致,这里需要看下你电脑里面的环境变量,大部分人的变量设置都是在系统环境变量里,JAVA_HOME里面有你的jdk路径,或者是在你的path里面找你的jdk路径。PS:我的java-version显示的是1.4,而我环境变量里面的jdk是我本地的1.6版本,所以有问题了,安装androidSDK时找的是你的1.6的版本,但是系统却默认的不是这个。所以你需要改你的环境变量。5.一般出现这种情况的人,一个是你的1.6没安对,或者环境变量没设好,你上网搜下方法有很多。另一个也是大部分人的错误是你的oracle数据库默认创建个jdk的原因。-----》找到你电脑环境变量设置,在系统变量里面找到path,编辑,把所有与oracle有关的放到后面。这样系统默认的就是你的1.6版本了。点击确定。6.再次运行AndroidSDK,顺利运行!
㈤ 我手机下了个Android Manager agent,电脑下了Android Manager WiFi,以为连接上就能在手机电脑下方便互传
这个好像不是手机与电脑互连的方式,而是手机用WIFI上网的方式。
你手机连接电脑?分别在手机及电脑下载安装一个豌豆荚助手吧,然后用USB线连接手机与电脑就可以随便在手机与电脑之间传输文件了
㈥ Android sdk manager 显示 “Done loading packages”,该怎么办
Android sdk manager 显示 “Done loading packages的原因:是因为没有连接到外网,导致无法更新。
Android sdk manager 显示 “Done loading packages”的解决办法:
1、请用管理员的身份运行"SDK Manager.exe"。
2、在SDK Manager下Tools->Options打开了SDK Manager的Settings,选中“Force https://? sources to be fetched using http://?”,强制使用http协议。
3、执行SDK Setup.exe,然后在setting中选中Force https://...scources to be fetched using http://...然后这Available Packages中选择,安装的SDK版本。
(6)androidmanager扩展阅读:
连接到外网四要素:
1、通信线路和通信设备;
2、有独立功能的计算机;
3、网络软件支持;
4、实现数据通信与资源共享。
Android SDk Tool被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合,是Android专属的软件开发工具包。
Android sdk manager 的其他问题及解决办法:
如果下载的Android SDK and AVD Manager Setup是R4的,即压缩包为android-sdk_r04-windows.zip。那么启动SDKsetup.exe以后即使发现了SDK2.1,eclipse仍然无法正常运行。
原因在于Android SDK and AVD Manager Setup已经升级到R5,Android SDK and AVD Manager Setup会自动连接网络升级到R5,然后才能安装SDK2.1,然后eclipse才能运行。
㈦ android servicemanager 怎么实现service管理
ServiceManager是android中比较重要的一个进程,它是在init进程启动之后启动,从名字上就可以看出来它是用来管理系统中的service。比如:InputMethodService、ActivityManagerService等。在ServiceManager中有两个比较重要的方法:add_service、check_service。系统的service需要通过add_service把自己的信息注册到ServiceManager中,当需要使用时,通过check_service检查该service是否存在。
主函数(anrdroid4.0/frameworks/base/cmds/servicemanager/service_manager.c)
从它的主函数代码开始:
int main(int argc, char **argv)
{
struct binder_state *bs;
void *svcmgr = BINDER_SERVICE_MANAGER;
bs = binder_open(128*1024);
if (binder_become_context_manager(bs)) {
LOGE("cannot become context manager (%s) ", strerror(errno));
return -1;
}
svcmgr_handle = svcmgr;
binder_loop(bs, svcmgr_handler);
return 0;
}
从main函数中可以看出,它主要做了三件事情:
打开/dev/binder设备,并在内存中映射128K的空间。
通知Binder设备,把自己变成context_manager
进入循环,不停的去读Binder设备,看是否有对service的请求,如果有的话,就去调用svcmgr_handler函数回调处理请求。
服务注册
再来看看ServiceManager中是怎么样去注册服务的。先来看先,当有对service的请求时,调用的回调函数svcmgr_handler:
int svcmgr_handler(struct binder_state *bs,
struct binder_txn *txn,
struct binder_io *msg,
struct binder_io *reply)
{
struct svcinfo *si;
uint16_t *s;
unsigned len;
void *ptr;
uint32_t strict_policy;
// LOGI("target=%p code=%d pid=%d uid=%d ",
// txn->target, txn->code, txn->sender_pid, txn->sender_euid);
if (txn->target != svcmgr_handle)
return -1;
// Equivalent to Parcel::enforceInterface(), reading the RPC
// header with the strict mode policy mask and the interface name.
// Note that we ignore the strict_policy and don't propagate it
// further (since we do no outbound RPCs anyway).
strict_policy = bio_get_uint32(msg);
s = bio_get_string16(msg, &len);
if ((len != (sizeof(svcmgr_id) / 2)) ||
memcmp(svcmgr_id, s, sizeof(svcmgr_id))) {
fprintf(stderr,"invalid id %s ", str8(s));
return -1;
}
switch(txn->code) {
case SVC_MGR_GET_SERVICE:
case SVC_MGR_CHECK_SERVICE:
s = bio_get_string16(msg, &len);
ptr = do_find_service(bs, s, len);
if (!ptr)
break;
bio_put_ref(reply, ptr);
return 0;
case SVC_MGR_ADD_SERVICE:
s = bio_get_string16(msg, &len);
ptr = bio_get_ref(msg);
if (do_add_service(bs, s, len, ptr, txn->sender_euid))
return -1;
break;
case SVC_MGR_LIST_SERVICES: {
unsigned n = bio_get_uint32(msg);
si = svclist;
while ((n-- > 0) && si)
si = si->next;
if (si) {
bio_put_string16(reply, si->name);
return 0;
}
return -1;
}
default:
LOGE("unknown code %d ", txn->code);
return -1;
}
bio_put_uint32(reply, 0);
return 0;
}
在该回调函数中会判断Service有什么需要,如果是请求注册service,那么久执行:
case SVC_MGR_ADD_SERVICE:
s = bio_get_string16(msg, &len);
ptr = bio_get_ref(msg);
if (do_add_service(bs, s, len, ptr, txn->sender_euid))
return -1;
break;
我们再来看看do_add_service中做了什么事情:
int do_add_service(struct binder_state *bs,
uint16_t *s, unsigned len,
void *ptr, unsigned uid)
{
struct svcinfo *si;
// LOGI("add_service('%s',%p) uid=%d ", str8(s), ptr, uid);
if (!ptr || (len == 0) || (len > 127))
return -1;
if (!svc_can_register(uid, s)) {
LOGE("add_service('%s',%p) uid=%d - PERMISSION DENIED ",
str8(s), ptr, uid);
return -1;
}
si = find_svc(s, len);
if (si) {
if (si->ptr) {
LOGE("add_service('%s',%p) uid=%d - ALREADY REGISTERED ",
str8(s), ptr, uid);
return -1;
}
si->ptr = ptr;
} else {
si = malloc(sizeof(*si) + (len + 1) * sizeof(uint16_t));
if (!si) {
LOGE("add_service('%s',%p) uid=%d - OUT OF MEMORY ",
str8(s), ptr, uid);
return -1;
}
si->ptr = ptr;
si->len = len;
memcpy(si->name, s, (len + 1) * sizeof(uint16_t));
si->name[len] = '