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"

 

相关文章
|
3月前
|
XML 自然语言处理 Android开发
🌐Android国际化与本地化全攻略!让你的App走遍全球无障碍!🌍
【7月更文挑战第28天】在全球化背景下,实现Android应用的国际化与本地化至关重要 for 用户基础扩展。本文通过旅游指南App案例,介绍全攻略。步骤包括资源文件拆分与命名、适配布局与方向、处理日期时间及货币格式、考虑文化习俗及进行详尽测试。采用Android Studio支持,创建如`res/values-en/strings.xml`等多语言资源文件夹,使用灵活布局解决文本长度差异问题,并通过用户反馈迭代优化。最终,打造一款能无缝融入全球各地文化的App。
157 3
|
6天前
|
移动开发 Android开发 数据安全/隐私保护
移动应用与系统的技术演进:从开发到操作系统的全景解析随着智能手机和平板电脑的普及,移动应用(App)已成为人们日常生活中不可或缺的一部分。无论是社交、娱乐、购物还是办公,移动应用都扮演着重要的角色。而支撑这些应用运行的,正是功能强大且复杂的移动操作系统。本文将深入探讨移动应用的开发过程及其背后的操作系统机制,揭示这一领域的技术演进。
本文旨在提供关于移动应用与系统技术的全面概述,涵盖移动应用的开发生命周期、主要移动操作系统的特点以及它们之间的竞争关系。我们将探讨如何高效地开发移动应用,并分析iOS和Android两大主流操作系统的技术优势与局限。同时,本文还将讨论跨平台解决方案的兴起及其对移动开发领域的影响。通过这篇技术性文章,读者将获得对移动应用开发及操作系统深层理解的钥匙。
|
9天前
|
XML 移动开发 前端开发
使用duxapp开发 React Native App 事半功倍
对于Taro的壳子,或者原生React Native,都会存在 `android` `ios`这两个文件夹,而在duxapp中,这些文件夹的内容是自动生成的,那么对于需要在这些文件夹中修改的配置内容,例如包名、版本号、新架构开关等,都通过配置文件的方式配置了,而不需要需修改具体的文件
|
8天前
|
Dart 开发工具 Android开发
在 Android 系统上搭建 Flutter 环境的具体步骤是什么?
在 Android 系统上搭建 Flutter 环境的具体步骤是什么?
|
9天前
|
存储 开发工具 Android开发
使用.NET MAUI开发第一个安卓APP
【9月更文挑战第24天】使用.NET MAUI开发首个安卓APP需完成以下步骤:首先,安装Visual Studio 2022并勾选“.NET Multi-platform App UI development”工作负载;接着,安装Android SDK。然后,创建新项目时选择“.NET Multi-platform App (MAUI)”模板,并仅针对Android平台进行配置。了解项目结构,包括`.csproj`配置文件、`Properties`配置文件夹、平台特定代码及共享代码等。
|
1月前
|
Web App开发 Java 视频直播
FFmpeg开发笔记(四十九)助您在毕业设计中脱颖而出的几个流行APP
对于软件、计算机等专业的毕业生,毕业设计需实现实用软件或APP。新颖的设计应结合最新技术,如5G时代的音视频技术。示例包括: 1. **短视频分享APP**: 集成FFmpeg实现视频剪辑功能,如添加字幕、转场特效等。 2. **电商购物APP**: 具备直播带货功能,使用RTMP/SRT协议支持流畅直播体验。 3. **同城生活APP**: 引入WebRTC技术实现可信的视频通话功能。这些应用不仅实用,还能展示开发者紧跟技术潮流的能力。
69 4
FFmpeg开发笔记(四十九)助您在毕业设计中脱颖而出的几个流行APP
|
29天前
|
移动开发 小程序 JavaScript
uni-app开发微信小程序
本文详细介绍如何使用 uni-app 开发微信小程序,涵盖需求分析、架构思路及实施方案。主要功能包括用户登录、商品列表展示、商品详情、购物车及订单管理。技术栈采用 uni-app、uView UI 和 RESTful API。文章通过具体示例代码展示了从初始化项目、配置全局样式到实现各页面组件及 API 接口的全过程,并提供了完整的文件结构和配置文件示例。此外,还介绍了微信授权登录及后端接口模拟方法,确保项目的稳定性和安全性。通过本教程,读者可快速掌握使用 uni-app 开发微信小程序的方法。
57 3
|
2月前
|
Web App开发 Android开发
FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo
实时数据传输在互联网中至关重要,不仅支持即时通讯如QQ、微信的文字与图片传输,还包括音视频通信。一对一通信常采用WebRTC技术,如《Android Studio开发实战》中的App集成示例;而一对多的在线直播则需部署独立的流媒体服务器,使用如SRT等协议。SRT因其优越的直播质量正逐渐成为主流。本文档概述了SRT协议的使用,包括通过OBS Studio和SRT Streamer进行SRT直播推流的方法,并展示了推流与拉流的成功实例。更多细节参见《FFmpeg开发实战》一书。
43 1
FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo
|
2月前
|
Web App开发 5G Linux
FFmpeg开发笔记(四十四)毕业设计可做的几个拉满颜值的音视频APP
一年一度的毕业季来临,计算机专业的毕业设计尤为重要,不仅关乎学业评价还积累实战经验。选择紧跟5G技术趋势的音视频APP作为课题极具吸引力。这里推荐三类应用:一是融合WebRTC技术实现视频通话的即时通信APP;二是具备在线直播功能的短视频分享平台,涉及RTMP/SRT等直播技术;三是具有自定义动画特效及卡拉OK歌词字幕功能的视频剪辑工具。这些项目不仅技术含量高,也符合市场需求,是毕业设计的理想选择。
68 6
FFmpeg开发笔记(四十四)毕业设计可做的几个拉满颜值的音视频APP
|
2月前
|
编解码 Java Android开发
FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流
​SRT Streamer是一个安卓手机端的开源SRT协议直播推流框架,可用于RTMP直播和SRT直播。SRT Streamer支持的视频编码包括H264、H265等等,支持的音频编码包括AAC、OPUS等等,可谓功能强大的APP直播框架。另一款APP直播框架RTMP Streamer支持RTMP直播和RTSP直播,不支持SRT协议的直播。而本文讲述的SRT Streamer支持RTMP直播和SRT直播,不支持RTSP协议的直播。有关RTMP Streamer的说明参见之前的文章《使用RTMP Streamer开启APP直播推流》,下面介绍如何使用SRT Streamer开启手机直播。
56 4
FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流
下一篇
无影云桌面