Android App连接真机步骤与APP的开发语言和工程结构讲解以及运行实例(超详细必看)

简介: Android App连接真机步骤与APP的开发语言和工程结构讲解以及运行实例(超详细必看)

APP运行环境

APP是在手机上运行的一类应用软件,而应用软件依附于操作系统。

为了提供App开发的功能测试环境,一种办法是利用Android Studio创建内置的模拟器,然后启动内置模拟器,再在模拟器上运行App应用 具体步骤参考我这篇博客模拟器创建

另一种办法是使用真实手机测试App,该办法在实际开发中更为常见,由于模拟器本身跑在电脑上面,占用电脑的CPU和内存,会拖累电脑的运行速度,况且模拟器仅仅是模拟而已,无法完全验证App的所有功能,因此最终都得通过真机测试才可以

下面介绍真机调试的五个步骤

1:使用数据线把手机连到电脑上

把手机数据线的一段接到电脑的USB接口即可

2:在电脑上安装手机的驱动程序

一般电脑会把手机当作USB存储设备一样安装驱动,大多是情况会自动安装成功,如果遇到少数情况安装失败,需要先安装**手机助手,由助手软件下载对应驱动

3:打开手机的开发者选项并启用USB调试(重要!!!)

手机出厂后默认关闭开发者选项,需要开启开发者选项才能调试App,打开手机的设置菜单,进入系统-关于手机-版本信息页面 一般会有好几个版本项,每个版本项都点击几次,总会有某个版本点击后出现“你将开启开发者模式”的提示(每个手机不一样 这个大家随缘)继续点击该版本开启开发者模式,然后退出并重新进入设置页面。此时就能在系统菜单下找到开发者选项或开发人员选项了,进入开发者选项页面。启用“开发者选项”和“USB调试”两处开关,允许手机通过USB接口安装调试应用

4:将连接的手机设为文件传输模式,并允许计算机进行USB调试

手机通过USB数据线连接电脑后,下面要选中传输文件的选项,因为充电模式不支持调试App

选完之后弹出第二个窗口,要勾选始终允许使用

5:手机要能正常使用

锁屏状态下 Android Studio向手机安装App的行为可能会被拦截,所以要保证手机处于解锁状态 才能顺利通过电脑安装App到手机上

有的手机还要求插入SIM卡才能调试App,还有的手机要求登录会员等等,总之遇到问题可以多上网搜搜,在评论区留言大家一起解决

App的开发语言

1:Java

Java是Android开发的主要编程语言,创建新项目时语言一般选择Java

2:Kotlin

它时谷歌官方力推的一种编程语言,它与Java同样基于JVM且完全兼容Java语言,一旦创建新项目时语言选择Kotlin,项目就会自动加载它的插件

3:C/C++

设计图像与音视频处理等复杂运算的场合,Java等解释型语言的性能瓶颈就暴露出来了,所以借助于JNI(Java Native Interface java原生接口)技术允许Java代码调用C/C++编写的程序。

4:XML

全程为可扩展标记语言,是一种标记语言,类似于HTML

5:App连接的数据库

App上是无法连接MYSQL Oracle等企业级的数据库的,Android内置了专门的数据库名为SQLite,它遵循关系数据库的设计理念,语法类似于Mysql,但是SQLite无须单独安装,因为它已经内嵌到应用进程当中,所以App无须配置连接信息。

App的工程结构

1:app模块

(1):manifests子目录

下面只有一个XML文件 即AndroidManifest.xml它是App的运行配置文件

(2):java子目录

下面有三个包,第一个包存放当前模块的Java源代码,后面两个包存放测试用的Java代码

(3):res子目录

存放当前模块的资源文件

2:Gradle Scripts

下面主要是工程的编译配置文件

编译配置文件build.gradle

由于官方的谷歌仓库位于国外,下载速度相对较慢,因此可以在repositories节点添加阿里云的仓库地址,加快下载速度 代码如下

buildscript{
repositories{
maven{url 'https://maven.aliyun.com/repository/jcenter'}
maven{url 'https://maven.aliyun.com/repository/google'}
maven{url 'https://maven.aliyun.com/repository/gradle-plugin'}
maven{url 'https://maven.aliyun.com/repository/public'}
google()
mavenCentral()
}
dependencies{
classpath'com.android.tools.build:gradle:4.1.0'
}
}

模块级别的build.gradle对应于具体模块 下面给出注释,方便大家理解每个参数的用途

apply plugin: 'com.android.application'
android {
    // 指定编译用的SDK版本号。比如30表示使用Android 11.0编译
    compileSdkVersion 30
    // 指定编译工具的版本号。这里的头两位数字必须与compileSdkVersion保持一致,具体的版本号可在sdk安装目录的“sdk\build-tools”下找到
    buildToolsVersion "30.0.2"
    defaultConfig {
        // 指定该模块的应用编号,也就是App的包名
        applicationId "com.example.chapter02"
        // 指定App适合运行的最小SDK版本号。比如19表示至少要在Android 4.4上运行
        minSdkVersion 19
        // 指定目标设备的SDK版本号。表示App最希望在哪个版本的Android上运行
        targetSdkVersion 30
        // 指定App的应用版本号
        versionCode 1
        // 指定App的应用版本名称
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}
// 指定App编译的依赖信息
dependencies {
    // 指定引用jar包的路径
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    // 指定编译Android的高版本支持库。如AppCompatActivity必须指定编译appcompat库
    //appcompat库各版本见 https://mvnrepository.com/artifact/androidx.appcompat/appcompat
    implementation 'androidx.appcompat:appcompat:1.2.0'
    // 指定单元测试编译用的junit版本号
    testImplementation 'junit:junit:4.13'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}

运行配置文件AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">
    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.MyApplication"
        tools:targetApi="31">
        <activity android:name=".Main2Activity">
        </activity>
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <meta-data
                android:name="android.app.lib_name"
                android:value="" />
        </activity>
    </application>
</manifest>

部分属性说明如下

android:allowBackup 是否允许备份

android:icon 指定App在手机屏幕上显示的图标

android:label 指定App在手机屏幕上显示的名称

android:roundIcon:指定App的圆角图标

android:supportsRtl 是否支持阿拉伯语这种从右往左的语言

android:theme 指定App的显示风格

运行效果如下 "Hello World"

 

相关文章
|
2月前
|
存储 消息中间件 人工智能
【03】AI辅助编程完整的安卓二次商业实战-本地构建运行并且调试-二次开发改注册登陆按钮颜色以及整体资源结构熟悉-优雅草伊凡
【03】AI辅助编程完整的安卓二次商业实战-本地构建运行并且调试-二次开发改注册登陆按钮颜色以及整体资源结构熟悉-优雅草伊凡
116 3
|
6月前
|
Android开发 数据安全/隐私保护 开发者
Android自定义view之模仿登录界面文本输入框(华为云APP)
本文介绍了一款自定义输入框的实现,包含静态效果、hint值浮动动画及功能扩展。通过组合多个控件完成界面布局,使用TranslateAnimation与AlphaAnimation实现hint文字上下浮动效果,支持密码加密解密显示、去除键盘回车空格输入、光标定位等功能。代码基于Android平台,提供完整源码与attrs配置,方便复用与定制。希望对开发者有所帮助。
122 0
|
2月前
|
Java 开发工具 Maven
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
197 6
|
9月前
|
JavaScript 前端开发 Android开发
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
339 13
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
4月前
|
存储 Android开发 数据安全/隐私保护
Thanox安卓系统增加工具下载,管理、阻止、限制后台每个APP运行情况
Thanox是一款Android系统管理工具,专注于权限、后台启动及运行管理。支持应用冻结、系统优化、UI自定义和模块管理,基于Xposed框架开发,安全可靠且开源免费,兼容Android 6.0及以上版本。
405 4
|
6月前
|
安全 Linux 开发工具
【Azure Function】分享把Function App从.NET 6.0升级到.NET 8.0 Isolated的步骤
本文介绍了将Azure Function App从.NET 6.0升级到.NET 8.0 Isolated的步骤。.NET 6.0作为长期支持版本,生命周期至2024年11月结束。为确保持续支持,建议升级至更新版本。升级步骤包括安装.NET 8 SDK、更新Azure Functions Core Tools、修改项目文件目标框架为net8.0、更新兼容的NuGet包、本地测试以及重新发布到Azure。更多详细信息可参考官方文档。
304 9
|
7月前
|
数据采集 JSON 网络安全
移动端数据抓取:Android App的TLS流量解密方案
本文介绍了一种通过TLS流量解密技术抓取知乎App热榜数据的方法。利用Charles Proxy解密HTTPS流量,分析App与服务器通信内容;结合Python Requests库模拟请求,配置特定请求头以绕过反爬机制。同时使用代理IP隐藏真实IP地址,确保抓取稳定。最终成功提取热榜标题、内容简介、链接等信息,为分析热点话题和用户趋势提供数据支持。此方法也可应用于其他Android App的数据采集,但需注意选择可靠的代理服务。
318 11
移动端数据抓取:Android App的TLS流量解密方案
|
9月前
|
移动开发 安全 Java
Android历史版本与APK文件结构
通过以上内容,您可以全面了解Android的历史版本及其主要特性,同时掌握APK文件的结构和各部分的作用。这些知识对于理解Android应用的开发和发布过程非常重要,也有助于在实际开发中进行高效的应用管理和优化。希望这些内容对您的学习和工作有所帮助。
931 83
|
6月前
|
API Go 网络架构
【Azure Logic App】特殊的方法来停止正常步骤无法停止的Workflow Job
本文介绍了一种特殊方法,用于解决标准版Logic App在异常情况下无法正常停止的问题。当点击Cancel按钮报错“WorkflowRunCanNotBeCancelled”时,可通过以下步骤解决:进入Logic App的Kudu页面,定位到`C:\home\site\wwwroot`目录下的`host.json`文件,添加`Jobs.SuspendedJobPartition`和`Jobs.CleanupJobPartition`参数,并以大写格式设置值为`&quot;&lt;WORKFLOWID&gt;:2D&lt;RUNID&gt;&quot;`。调整后可成功停止异常Job
189 18
|
9月前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
396 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡

热门文章

最新文章

下一篇
oss云网关配置