问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

手机android开发环境该如何搭建

发布网友 发布时间:2022-04-23 06:11

我来回答

2个回答

热心网友 时间:2023-09-05 16:40

下载jdk,

配置jdk环境变量

下载android studio,可选择附带下载sdk(也可自行下载)

配置sdk环境变量。

打开android studio,新建项目完成helloword第一个项目的创建。

热心网友 时间:2023-09-05 16:41

一.认识android的架构

Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个JAVA的application framework,所有的应用程序都是基于JAVA的application framework之上。

android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。

二.搭建环境

搭建开发环境

对国内的开发者来说最痛苦的是无法去访问android开发网站。为了更好的认识世界,对程序员来说,会*也是的一门技术,带你去领略墙外的世界,好了,不废话了, 国内开发者访问(androiddevtools) 上面已经有了所有你要的资源,同时可以下载到我们的主角framework

但是这样的搭建只能去阅读源代码,我们无法去更进一步去实现自己的rom,我们看到锤子的系统在早期的开放rom是自己从新实现了framework的代码,现在看起来他成功了,所以我们还要去搭建android系统的源码编译环境。

搭建源码编译环境

三.开始主题

在一开始写c程序的时候都有一个运行的入口,比如

#include <iostream>

#include <cmath>

#include <algorithm>

using namespace std;

//这里的main就是应用的入口

int main(int argc, const char * argv[]){

return 0;

}

在计算机网络原理中我们用socket实现一个服务器端,不断的接听客户端的访问,而且他的代码是这样实现的:

#include <winsock2.h>

#pragma comment(lib, "WS2_32.lib")

#include <stdio.h>

void main() 

{

WORD wVersionRequested;//版本号

WSADATA wsaData;

int err;

wVersionRequested = MAKEWORD(2, 2);//2.2版本的套接字

//加载套接字库,如果失败返回

err = WSAStartup(wVersionRequested, &wsaData);

if (err != 0)

{

return;

}

//判断高低字节是不是2,如果不是2.2的版本则退出

if (LOBYTE(wsaData.wVersion) != 2 ||

HIBYTE(wsaData.wVersion) != 2)

{

return;

}

//创建流式套接字,基于TCP(SOCK_STREAM)

SOCKET socSrv = socket(AF_INET, SOCK_STREAM, 0);

//Socket地址结构体的创建

SOCKADDR_IN addrSrv;

addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);//转换Unsigned long型为网络字节序格

addrSrv.sin_family = AF_INET;//指定地址簇

addrSrv.sin_port = htons(6000);

//指定端口号,除sin_family参数外,其它参数都是网络字节序,因此需要转换

//将套接字绑定到一个端口号和本地地址上

bind(socSrv, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));//必须用sizeof,strlen不行

listen(socSrv, 5);

SOCKADDR_IN addrClient;//字义用来接收客户端Socket的结构体

int len = sizeof(SOCKADDR);//初始化参数,这个参数必须进行初始化,sizeof

//循环等待接受客户端发送请求

while (1)

{

//等待客户请求到来;当请求到来后,接受连接请求,

//返回一个新的对应于此次连接的套接字(accept)。

//此时程序在此发生阻塞

SOCKET sockConn = accept(socSrv, (SOCKADDR*)&addrClient, &len);

char sendBuf[100];

sprintf(sendBuf, "Welcome %s to JoyChou",

inet_ntoa(addrClient.sin_addr));//格式化输出

//用返回的套接字和客户端进行通信

send(sockConn, sendBuf, strlen(sendBuf)+1, 0);//多发送一个字节

//接收数据

char recvBuf[100];

recv(sockConn, recvBuf, 100, 0);

printf("%s\\n", recvBuf);

closesocket(sockConn);

}

}

他采用了一个while死循环去监听客户端的请求。 

先上源代码

public final class ActivityThread {

public static void main(String[] args) {

SamplingProfilerIntegration.start();

CloseGuard.setEnabled(false);

Environment.initForCurrentUser();

EventLogger.setReporter(new EventLoggingReporter());

Security.addProvider(new AndroidKeyStoreProvider());

final File configDir = Environment.getUserConfigDirectory(UserHandle.myUserId());

TrustedCertificateStore.setDefaultUserDirectory(configDir);

Process.setArgV0("<pre-initialized>");

Looper.prepareMainLooper();

//从中可以看到为app开辟了一个线程进入了looper之中

ActivityThread thread = new ActivityThread();

thread.attach(false);

if (sMainThreadHandler == null) {

sMainThreadHandler = thread.getHandler();

}

AsyncTask.init();

if (false) {

Looper.myLooper().setMessageLogging(new

LogPrinter(Log.DEBUG, "ActivityThread"));

}

Looper.loop();

throw new RuntimeException("Main thread loop unexpectedly exited");

}

}

看到源码失望了,没有一个while循环啊,其实用了他方法实现

//用一个looper的机制循环监听响应

Looper.prepareMainLooper();

Looper.loop();

进一步深入代码

public static void loop() {

final Looper me = myLooper();

if (me == null) {

throw new RuntimeException("No Looper; Looper.prepare() wasn't called on this thread.");

}

final MessageQueue queue = me.mQueue;

Binder.clearCallingIdentity();

final long ident = Binder.clearCallingIdentity();

// 在这里看到了一个循环监听消息

for (;;) {

Message msg = queue.next(); // might block

if (msg == null) {

// No message indicates that the message queue is quitting.

return;

}

Printer logging = me.mLogging;

if (logging != null) {

logging.println(">>>>> Dispatching to " + msg.target + " " +

msg.callback + ": " + msg.what);

}

msg.target.dispatchMessage(msg);

if (logging != null) {

logging.println("<<<<< Finished to " + msg.target + " " + msg.callback);

}

// Make sure that ring the course of dispatching the

// identity of the thread wasn't corrupted.

final long newIdent = Binder.clearCallingIdentity();

if (ident != newIdent) {

Log.wtf(TAG, "Thread identity changed from 0x"

+ Long.toHexString(ident) + " to 0x"

+ Long.toHexString(newIdent) + " while dispatching to "

+ msg.target.getClass().getName() + " "

+ msg.callback + " what=" + msg.what);

}

msg.recycleUnchecked();

}

}

Android开发环境搭建?

准备开发环境:首先,您需要在计算机上安装Java开发工具包(JDK)和Android开发工具包(SDK)。确保您已经正确配置了这些工具,并设置了相应的环境变量。创建项目:使用Android Studio或其他适合您的开发工具创建一个新的Android项目。您可以选择项目名称、包名以及支持的最低Android版本等。开发应用:根据您的需...

Android开发环境搭建(干货)

1、环境搭建 1.1、JDK安装 如果你还没有JDK的话,可以去这里下载,接下来的工作就是安装提示一步一步走。设置环境变量步骤如下:我的电脑-&gt;属性-&gt;高级-&gt;环境变量-&gt;系统变量中添加以下环境变量:JAVA_HOME值为:D:Program FilesJavajdk1.6.0_18(你安装JDK的目录)CLASSPATH值为:.;%JAVA_HOME%l...

如何搭建android开发环境?

Android模拟器系统版本安装:使用Android SDK Manager下载需要的Android版本,确保所有组件安装成功。安装过程中可能会遇到一些警告或错误信息,通常情况下遵循提示操作即可。最后,根据实际需求配置工作空间和环境变量,确保Eclipse能够正确识别和使用Android SDK和ADT。整个过程可能需要一些耐心,因为下载和安装过程可...

如何正确搭建android的开发环境

第一步:安装JDK。要下载Oracle公司的JDK可以百度“JDK”进入Oracle公司的JDK下载页面,选择自己电脑系统的对应版本即可。第二步:配置Windows上JDK的变量环境 。JAVA_HOME 先设置这个系统变量名称,变量值为JDK在电脑上的安装路径:C:\Program Files\Java\jdk1.8.0_20。创建好后则可以利用%JAVA_HOME%...

如何搭建Android开发环境

三、安装Android SDK Android SDK可以通过SDK下载器自动下载和配置,适合网络好的朋友;也可以借助工具下载SDK文件,手工配置,适合下载速度慢的朋友。 SDK下载器自动下载步骤如下: 解压缩android-sdk_r08-windows下载器,双击运行SDK Manager.exe:四、Eclipse 集成开发环境(IDE)的搭建 现在开始Eclipse ...

androidstudio环境配置(androidstudio如何配置环境变量)

首先我们在搭建Android开发环境之前,需要一个集成的开发环境,一个是SDK,一个是模拟器。因为编程使用的是JAVA语言,还需要JDK。安装配置模拟器:a运行菜单项Windows-AndroidSDKandAVDManager,即出现如下对话框,放大对话框。第四步:下载安装AndroidSDK配置了JDK变量环境,安装好了Eclipse,这个时候如果只是...

如何搭建 Android 开发环境?

搭建 Android studio开发环境的步骤如下:1.安装android-studio-bundle-.exe文件。2.根据安装向导指示完成安装:3.如果还没在系统上安装JDK,那还需要安装最新版本的Java,然后设置好JDK_HOME和JAVA_HOME环境变量:4.是否限制安装配置,选择“任何本机用户都能使用”,下面一项“仅供你使用”:5.选择安装...

android开发环境搭建

Android开发环境搭建分为五个步骤来完成Android开发环境的部署。第一步:安装JDK 要下载Oracle公司的JDK可以百度“JDK”进入Oracle公司的JDK下载页面(当前下载页面地址为http://www.oracle.com/technetwork/java/javase/downloads/index.html),选择自己电脑系统的对应版本即可。第二步:配置Windows上JDK的...

Android开发环境搭建(jdk+eclip+android sdk)

一 相关下载(1) java JDK进入该网页: 选择 Download JDK 只下载JDK,无需下载jre.(2)eclipse下载进入该网页:我们选择第一个(即eclipse IDE for java EE Developers)(3)下载Android SDK说明: Android SDK两种下载版本,一种是包含具体版本的SDK的,一种是只有升级工具,而不包含具体的SDK版本,后一...

如何搭建android开发环境

Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个JAVA的application framework,所有的应用程序都是基于JAVA的application framework之上。android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。二.搭建环境 搭建开发环境 对...

android开发环境的搭建步骤 android的开发环境搭建 如何搭建安卓开发环境 简述如何搭建安卓开发环境 手机开发环境搭建 android的开发环境 android编译环境搭建 android集成开发环境 android studio开发
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我拉的大便一块一块的,球状,肚子里也是不太舒服。想上厕所,但是每次都... 马健南最好听的十首歌 烟台各个高中怎么样?有在校生帮忙解答下,今年中考 澳洲八大里面的澳国立、悉尼大学、昆士兰大学、新南威尔士,哪个更... 澳大利亚有哪些著名大学 澳大利亚有哪些名校 烟台二中的小实验班和烟台一中的大实验班哪个好? 椰子煲什么好 烟台二中和蓬莱一中哪个好??! 我升学!! 基因型文件格式转换 免费在线小工具-突变分析系列:突变注释信息 我想自己弄大波浪卷发,一次性的,要怎么做,需要什么工具 如何配置android开发环境 怎么去搭建android应用开发环境 大波浪怎么卷 android 开发环境有哪些 怎么用直夹板把头发夹成大波浪卷? 造梦西游3如何获得孟婆汤 如何搭建android开发环境 无线蓝牙耳机有类似bose、beats的平价一点的吗? beats powerbeats2 wireless挂耳式运动无线蓝牙耳机好吗 水浒传读后感800到1000字 水浒传读后感800字,要新鲜一点的,最好没人写过的。 无线蓝牙耳机有没有类似beats、bose这样的好用的,平价一点的吗? 水浒传观后感800字 造梦西游3孟婆汤怎么得 水浒传读后感800字,不要抄袭,必须原创! 孟婆是真的吗? beats的这个耳机说防水,那么洗澡或者游泳时能否使用? 新版微信头像怎么找回原来用过的图片? 怎样治疗乳腺炎?乳腺炎偏方?乳腺炎的早期症状 如何搭建 Android 开发环境 如何做一个自然的大波浪发型? 如何用卷发棒卷大波浪 如何安装一个完整的android开发环境 android 环境都是什么样的环境 请问我的个人电脑上下载并使用的wps是否收费? 电脑上的wps是免费的吗?office套件怎么免费? 怎么搭建安卓开发环境 大波浪卷发发型怎么烫 怎么搭建android studio开发环境 中国人寿的保单查询 想要自然的大波浪卷发选择哪种烫法? 干鱼肚多少钱1斤 大波浪 怎么烫 鱼胶多少钱一克 卷发筒怎么卷成大波浪 android开发环境需要哪些工具 鱼胶多少钱一 斤 Android开发需要什么环境? 大波浪的卷发怎么弄啊?