
使用一根 USB 电缆将您的设备连接到您的开发机器。 如果您是在 Windows 上开发,可能需要为您的设备安装相应的 USB 驱动程序。如需帮助安装驱动程序,请参阅原始设备制造商 (OEM)USB 驱动程序文档。
转到Settings > Developer options,在您的设备上启用 USB debugging。
注:在 Android 42 及更新版本的设备上,Developeroptions 默认处于隐藏状态。如需将其显示出来,请转到Settings > About phone并点按 Build number七次。返回上一屏幕即可找到 Developer options。
从 Android Studio 中运行应用,如下所示:
在Android Studio 中,选择您的项目,然后点击工具栏中的 Run 。
在 Select Deployment Target 窗口中,选择您的设备,然后点击OK。
Android Studio 会在您连接的设备上安装并启动应用。
在模拟器上运行您的应用
在模拟器上运行您的应用之前,需要创建一个Android Virtual Device (AVD)定义。AVD 定义可用于定义您想要在Android Emulator 中模拟的 Android电话、平板电脑、Android Wear 或 Android TV 设备的特征。
创建 AVD 定义,如下所示:
通过选择Tools > Android > AVD Manager,或点击工具栏中AVD Manager 图标,启动 Android Virtual Device Manager 。
在 Your Virtual Devices 屏幕中,点击 Create Virtual Device。
在 Select Hardware 屏幕中,选择电话设备(如 Nexus 6),然后点击Next。
在 System Image 屏幕中,选择 AVD 所需的系统映像,然后点击Next。
如果未安装特定的系统映像,则可通过点击Download 链接获取它。
验证配置设置(对于您的第一个AVD,请将所有设置保持原样),然后点击 Finish。
如需了解有关使用AVD 的详细信息,请参阅创建和管理虚拟设备。
从 Android Studio 中运行应用,如下所示:
在Android Studio 中,选择您的项目,然后点击工具栏中的 Run 。
在 Select Deployment Target 窗口中,选择您的模拟器,然后点击OK。
模拟器可能需要几分钟时间完成启动。您可能需要将屏幕解锁。解锁后,模拟器屏幕上会出现 My First App。
不知道你用的是什么开发工具
1 如果是Eclipse的话 打开Eclipse软件 在屏幕左侧找到 Package Explorer
2 可以选择在空白处右击--new--Android Application(你得在Eclipse上装有Android的jar包)
3 在Application Name输入项目名称(最好是英文,可大写)后面的包名和布局文件名它会自动生成 sdk的话没什么要求 只要你有就行
4 Next-- 不用管 接着Next---
5 在Configure Launcher lcon界面点击Browse选择你创建的Android项目的图标
6 之后点击Next--Next- 在Blank Activity界面可以修改主Activity和布局文件的名称
7 Finish
这样 一个基本的Android项目就创建完成了 你就可以在你创建的MainActivity里写入你想写的东西啦
当然Android Studio 的创建步骤也差不多
主要通过以下几个步骤:
1、手机通过数据线连接在电脑上
2、设置android手机为USB调试模式。步骤:menu—
3、如果是window系统,系统会提示安装驱动:
选择正确的androidsdk安装目录,然后点击下一步,系统就开始安装驱动了
4、驱动安装完成之后,重启电脑(通常系统会有“安装新驱动,重启才能生效”的提示),这但应该明白吧
5、重复第1步和第2步,打开命令窗口,检测手机设备是否已经被识别,如下所示:
“device”就是检测到得手机设备
6、接下来就开始在eclipse上调试android程序了,右击android工程-
7、选中手机设备,点击OK之后,程序就开始在真机上安装了,控制台输出如下信息:
[2011-04-0722:24:49-HelloWorld]UploadingHelloWorldapkontodevice‘′
[2011-04-0722:24:49-HelloWorld]InstallingHelloWorldapk
[2011-04-0722:24:53-HelloWorld]Suess!
[2011-04-0722:24:53-HelloWorld]Startingactivitycomeightqiuactivityondevice
[2011-04-0722:24:57-HelloWorld]:Starting:Intent{act=androidintentactionMAINcat=[androidintentcategoryLAUNCHER]cmp=comeightqiuactivity/}
8设置应用程序为调试模式。 *** 作:编辑xml增加调试参数android:debuggable="true",如下:
9执行真机调试 *** 作:ECLIPSE调试对话框中,Target窗口中选择Manual,点击debug按钮,选择真机设备,开始调试。
注:不管是否启用ECLIPSE环境,任何Android软件只要在真机上运行发生异常,都可以在命令行窗口下查看具体异常信息:
执行:/adblogcat可以查看到更多的系统异常消息。在这些消息中要注意查看Causedby:打头的行,这些行指明了在哪行代码出的错误
10、运行这个应用程序,这样就可以使用手机来测试了
通常来说,一个android应用程序不止一个Activity(活动),更不止一个界面。于是需要创建多个Activity来满足应用程序的要求,这里我将告诉大家如何添加新的Activity,并实现Activity之间的切换,这里的两个活动以不同界面展示,活动的切换相当于界面的切换。AndroidstudioAndroid手机或者安卓模拟器首先创建一个Test项目工程,选择默认版式,选择好自己喜欢的主题(Theme)。Androidstudio教程:[6]创建多个Activity在文件管理器中找到layout下的xml文件,并将其复制粘贴一份到layout目录下,命名为second_activityxml。Androidstudio教程:[6]创建多个Activity接下来在java文件处新建一个javaclass,命名为SecondActivity。Androidstudio教程:[6]创建多个ActivityAndroidstudio教程:[6]创建多个Activity此时可以看到文件目录中多出来一个xml文件和一个java类文件。Androidstudio教程:[6]创建多个Activity打开AndroidManifestxml文件,添加一个标签,添加内容如下:Androidstudio教程:[6]创建多个Activity修改SecondActivityxml:Androidstudio教程:[6]创建多个Activity修改SecondActivityjava文件:publicclassSecondActivityextendsActionBarActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){superonCreate(savedInstanceState);setContentView(RlayoutSecondActivity);}}Androidstudio教程:[6]创建多个Activity修改主界面的activity_myxml文件,添加一个按钮,用于跳转Activity:Androidstudio教程:[6]创建多个Activity在主界面的java类中实现按钮的点击事件响应函数onClick,通过startActivity函数打开新的ActivitypublicvoidonClick(Viewview){startActivity(newIntent("comlitreilySecondActivity"));}Androidstudio教程:[6]创建多个Activity设置采用模拟器打开App,并启动调试打开模拟器。Androidstudio教程:[6]创建多个Activity在模拟器中运行程序,点击按钮可以切换Activity,在第二个界面点击返回键可以返回主界面。Androidstudio教程:[6]创建多个ActivityAndroidstudio教程:[6]创建多个Activity注意事项xml文件的命名为小写字母或者数字,大写字母可能会报错
一认识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 <winsock2h>
#pragma comment(lib, "WS2_32lib")
#include <stdioh>
void main()
{
WORD wVersionRequested;//版本号
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(2, 2);//22版本的套接字
//加载套接字库,如果失败返回
err = WSAStartup(wVersionRequested, &wsaData);
if (err != 0)
{
return;
}
//判断高低字节是不是2,如果不是22的版本则退出
if (LOBYTE(wsaDatawVersion) != 2 ||
HIBYTE(wsaDatawVersion) != 2)
{
return;
}
//创建流式套接字,基于TCP(SOCK_STREAM)
SOCKET socSrv = socket(AF_INET, SOCK_STREAM, 0);
//Socket地址结构体的创建
SOCKADDR_IN addrSrv;
addrSrvsin_addrS_unS_addr = htonl(INADDR_ANY);//转换Unsigned long型为网络字节序格
addrSrvsin_family = AF_INET;//指定地址簇
addrSrvsin_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(addrClientsin_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) {
SamplingProfilerIntegrationstart();
CloseGuardsetEnabled(false);
EnvironmentinitForCurrentUser();
EventLoggersetReporter(new EventLoggingReporter());
SecurityaddProvider(new AndroidKeyStoreProvider());
final File configDir = EnvironmentgetUserConfigDirectory(UserHandlemyUserId());
TrustedCertificateStoresetDefaultUserDirectory(configDir);
ProcesssetArgV0("<pre-initialized>");
LooperprepareMainLooper();
//从中可以看到为app开辟了一个线程进入了looper之中
ActivityThread thread = new ActivityThread();
threadattach(false);
if (sMainThreadHandler == null) {
sMainThreadHandler = threadgetHandler();
}
AsyncTaskinit();
if (false) {
LoopermyLooper()setMessageLogging(new
LogPrinter(LogDEBUG, "ActivityThread"));
}
Looperloop();
throw new RuntimeException("Main thread loop unexpectedly exited");
}
}
看到源码失望了,没有一个while循环啊,其实用了他方法实现
//用一个looper的机制循环监听响应
LooperprepareMainLooper();
Looperloop();
进一步深入代码
public static void loop() {
final Looper me = myLooper();
if (me == null) {
throw new RuntimeException("No Looper; Looperprepare() wasn't called on this thread");
}
final MessageQueue queue = memQueue;
BinderclearCallingIdentity();
final long ident = BinderclearCallingIdentity();
// 在这里看到了一个循环监听消息
for (;;) {
Message msg = queuenext(); // might block
if (msg == null) {
// No message indicates that the message queue is quitting
return;
}
Printer logging = memLogging;
if (logging != null) {
loggingprintln(">>>>> Dispatching to " + msgtarget + " " +
msgcallback + ": " + msgwhat);
}
msgtargetdispatchMessage(msg);
if (logging != null) {
loggingprintln("<<<<< Finished to " + msgtarget + " " + msgcallback);
}
// Make sure that during the course of dispatching the
// identity of the thread wasn't corrupted
final long newIdent = BinderclearCallingIdentity();
if (ident != newIdent) {
Logwtf(TAG, "Thread identity changed from 0x"
+ LongtoHexString(ident) + " to 0x"
+ LongtoHexString(newIdent) + " while dispatching to "
+ msgtargetgetClass()getName() + " "
+ msgcallback + " what=" + msgwhat);
}
msgrecycleUnchecked();
}
}
>
以上就是关于android studio怎么运行程序全部的内容,包括:android studio怎么运行程序、简述创建 android 程序的基本步骤是什么、androidstudio怎么调试应用程序_androidstudio进行手机或者模拟器调试等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)