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] = '