【安卓开发】【一】初识安卓

别再瞎试了!用Python+正交设计,5分钟搞定你的多因素实验方案 本文介绍了如何利用Python和正交设计高效优化多因素实验方案。正交设计通过精心设计的正交表,用最少的实验次数覆盖所有因素的水平组合,显著提升实验效率。文章详细讲解了正交设计的核心优势、Python实现工具链、实验实施与数据分析方法,以及高级技巧与常见问题解决方案,帮助读者快速掌握这一强大的实验优化技术。 阅读详情

一、安卓系统架构(四层架构)

1.Linux内核层:为安卓设备的各种硬件提供底层的驱动

显示驱动、音频驱动、照相机驱动、蓝牙驱动、WIFI驱动、电源管理

2.系统运行库层

C/C++库提供提醒支持,SQLite库提供数据库支持,OpenGL|ES提供3D绘图支持,Webkit库提供浏览器内核支持

3.应用框架层

构建应用程序时可能用到的各种API,安卓自带的一些核心应用就是用的这个API

4.应用层

手机上的应用程序(.apk安装后)

二、四大组件

活动Activity、服务Service、广播接收器Broadcast Receiver、内容提供器Content Provider

三、安装安卓准备工具

1.安装JDK

下载网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html


配置好jdk的环境变量后才能安装安装Android SDK

配置:https://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html

2.安装Android SDK

下载网址:https://pan.baidu.com/s/1mq3f1n5A14l6VHRU1G6PeQ

3.安装Android Studio

下载网址:http://www.android-studio.org/


安装教程:https://blog.youkuaiyun.com/u014726937/article/details/52846502

四、创建你的第一个项目

教程:https://jingyan.baidu.com/article/90bc8fc84293b8f653640c8d.html

创建之后可能存在的一些报错:

1.Android SDK没有引用成功,提示SDK Manager的报错

菜单栏->Tools->Android->SDK Manager-> Appearance & Behavior,打开后:


定位好你的Android SDK位置即可

2.NDK没有引用成功

先安装好这两个工具


看教程:https://jingyan.baidu.com/album/7f41ecec231d16593d095c03.html

3.可能存在识别不了AppCompatActivity,找不到这个类

仔细看会发现是上方import Adroid.support.v7...报错,v7找不到

菜单栏->File->Project Structure...,打开后



接着添加新的依赖库:com.android.support:appcompat-v7这个开头的



参考博客:https://blog.youkuaiyun.com/a873282620/article/details/53068392

五、项目中的各种文件


参考文章:https://blog.youkuaiyun.com/qq_28377423/article/details/72991776

manifests:

         AndroidManifest.xml:APP的配置信息

java:主要为源代码和测试代码

res:主要是资源目录,存储所有的项目资源

        drawable:存储一些xml文件,-*dpi表示存储分辨率的图片,用于适配不同的屏幕。

                           -mdpi:320x480

                           -hdpi:480x800、480x854

                           -xhdpi:至少960x720

                           -xxhdpi:1280x720

        layout:存储布局文件

        mipmap:存储原声图片资源

        values:存储app引用的一些值

                     - colors.xml:  存储了一些color的样式

                     - dimens.xml:存储了一些公用的dp值                       

                     - strings.xml: 存储了引用的string值

                     - styles.xml:   存储了app需要用到的一些样式

         Gradle Scripts:build.gradle为项目的gradle配置文件

我们可以获取到res下的一些引用

<resources>

           <string name="app_name">MProject</string>

</resources>

(1)在代码中通过R.string.app_name可以获取该字符串的引用

(2)在XML中通过@string/app_name可以获得该字符串的引用

其中string可以替换成drawable,mipmap,layout等res下的资源


六、build.gradle文件

这个文件一共有两个,一个在外层,一个在app文件夹下

1.外层的build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

repositories是仓库,jcenter()是一个代码托管仓库,我们可以在项目中轻松引用任何jcenter上的开源项目

dependencies是依赖,classpath是声明路径,后面的com.android.tools.build:gradle:2.2.0是一个Gradle插件,我们需要它来构建安卓项目

2.app文件夹下的build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    buildToolsVersion "28.0.0"
    defaultConfig {
        applicationId "com.movieproject.yj.mproject"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
}

com.android.application表示这是一个应用程序模块,com.android.library表示这是一个库模块,区别在于,应用程序模块是可以直接运行的,而库模块是作为代码库依附于别的应用程序模块来运行

compileSdkVersion用于指定项目的编译版

buildToolsVersion用于指定项目构建工具的版本

 defaultConfig表示基础配置

applicationId表示项目的包名,之前已经指定过包名了,如果后面想修改包名,就是这里修改

minSdkVersion表示指定项目最低兼容的Adnroid系统版本

targetSdkVersion表示你在该目标版本上已经做过了充分的测试

versionCode表示指定项目的版本号 versionName 表示指定项目的版本名,两个属性在生成安装文件的时候非常重要

 buildTypes 用于指定生成安装文件的相关配置

dependencies表示依赖库,就是前面添加v7引用的依赖库,是同一个东西

七、使用Android的Log日志工具

先要引用andriod.util.Log

里面有5个方法:

1.Log.v() 打印最为琐碎的、意义最小的日志信息(verbose)

2.Log.d()打印一些调试信息(debug)

3.Log.i()打印一些比较重要的数据(info)

4.Log.w()打印一些警告信息(warn)

5.Log.e()打印一些程序上的错误(error)

日志方法有2个参数,第一个是tag,用于对打印信息的过滤

第二个是msg,表示想要打印的具体内容

tag值的小技巧:我们在OnCreate()方法外面输入logt,然后按下tab键,这时就会以当前的类名作为值自动生成一个TAG常量

观看日志通过logcat进行查看

logcat位于AndroidStudio下面的AndroidMonitor里


RS422总线 ①.RS422发送驱动器无高阻三态(浮空)状态RS422收发芯片,发送脚固定强驱动输出,永远钳位 A/B 差分电平,不能关断、不能悬空,只要芯片上电,TX+、TX - 就强制输出互补电压(一路高、一路低)。多条发送并联在同一组差分线上:两个驱动器一个拉 A 高、一个拉 A 低,B 线反向拉扯 → 电源→地大电流对灌,瞬间芯片过流发烫烧毁、总线电平短路错乱。注意:RS485 带DE/RE 收发使能脚:不用发送时可关闭驱动器,输出变成高阻浮空,让出总线,因此能多节点分时发送。③.多点通信方式,一主多从方式; 阅读详情

相关推荐

学习Python,小白如何搭建Python环境?

学习Python,首先需要搭建好Python环境,主要分为【运行环境搭建】、【开发环境搭建】以及【Python环境配置】三个环节,接下来我将对Python环境搭建这三个部分进行介绍。

weixin_72923265的博客 9015

Android Application开发使用详解【建议收藏】

在技术领域内,没有任何一门课程可以让你学完后一劳永逸,再好的课程也只能是“师傅领进门,修行靠个人”。“学无止境”这句话,在任何技术领域,都不只是良好的习惯,更是程序员和工程师们不被时代淘汰、获得更好机会和发展的必要前提。如果你觉得自己学习效率低,缺乏正确的指导,可以扫码,加入我们资源丰富,学习氛围浓厚的技术圈一起学习交流吧!加入我们吧!

Android 开发架构 1518

AXI 1G/2.5G Ethernet Subsystem IP核使用过程中参数配置全解

AXI 1G/2.5G Ethernet Subsystem 是一个为FPGA设计的以太网子系统,它支持1Gbps和2.5Gbps的数据传输速率,使得FPGA能够直接进行高速以太网通信。这个子系统通常包含以太网MAC控制器、GMII(千兆媒体独立接口)或RGMII(简化GMII)接口、以及可选的PHY(物理层)接口支持。

u011565038的博客 1万+

Android组件化方案

1为什么要项目组件化 2如何组件化 3组件化实施流程 1组件模式和集成模式的转换 2组件之间AndroidManifest合并问题 3全局Context的获取及组件数据初始化 4library依赖问题 5组件之间调用和通信 6组件之间资源名冲突 4组件化项目的工程类型 1app壳工程 2功能组件和Common组件 2业务组件和Main组件 ...

weixin_30416871的博客 278

WebDriverAgent 菜鸟解析篇

WebDriverAgent 是一个用于模拟移动设备浏览器的 Python 库,可以用来在 PC 上模拟移动设备的浏览器操作,从而进行自动化测试。下面是一个菜鸟对 WebDriverAgent 源码的解析篇,希望能对初学者有所帮助。

DJ355的博客 1223

VSCode上搭建C/C++开发环境(vscode配置c/c++环境)Windows系统---保姆级教程

关于VSCode上搭建C/C++开发环境的内容,到这里就结束了,这里博主感叹一下,VSCode真的挺强大的,作为一个编辑器,可以通过和编译器链接成为开发环境,将环境配置好的话,在这上面写代码似乎也是个不错的选择。大家有任何疑问,欢迎在评论区中提出,本篇博客有任何问题和错误也欢迎来和博主讨论,真心希望能和大家一起进步。最后,如果本篇博客对你有帮助的话,能不能给博主一个三连啊!

2303_79329831的博客 8万+

Linux下搭建Android开发环境

  为什么要在Linux搭建开发环境呢?从直观来说,Android虚拟机在Linux下运行速度更快,而且性能更稳定。   我使用的Linux环境是ubuntu-10.10-desktop-i386。安装前所需要准备的软件:     1. JDK(jdk-6u27-linux-i586.bin)     2. AndroidSDK(android-sdk_r12-linux_x86)...

weixin_30794851的博客 1303

读懂 SAP S/4HANA 里的 SAP Fiori 架构:前端服务器、搜索链路、传统应用接入与内容组织全景解析

摘要:SAP Fiori架构并非简单的系统连接图,而是明确区分界面层与业务数据层的三层分工体系:用户交互层(浏览器与Fiori launchpad)、前端技术层(SAPUI5运行环境)和业务数据层(SAP S/4HANA后端)。这种分离实现了生命周期解耦,前端专注于统一体验治理,后端处理核心业务逻辑。值得注意的是,SAP Fiori front-end server本质仍是ABAP系统,负责UI技术组件运行。虽然SAP S/4HANA推荐嵌入式部署,但独立部署在多系统场景中仍有价值。典型Fiori应用通过O

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 180

简述Android操作系统

Android操作系统大致分为:Linux内核、HAL层、Native Libraries、Runtime、Framework层、APP层

Css__ssC的博客 4782

Nerf 训练自有数据

colmap相机位姿转为LLFF格式数据

zfjBIT的专栏 2310

fasterlio原理及代码框架梳理

Faster-LIO 的优势是在保持同等高精度的前提下,显著提升计算效率,以支持更极端的应用场景(如高速无人机)和更廉价的硬件平台。可以把 Faster-LIO 理解为用一把更快的“空间哈希筛子”(iVox)替换了原来精细的“动态平衡树”(ikd-Tree),从而在精度损失极小的情况下,实现了效率的显著提升。:只在实际有地图点的空间区域动态创建和保留体素单元,形成一个稀疏的体素地图。是关键:将去畸变点云中的每个点,在 iVox 维护的局部地图中搜索近邻(如5个最近点),构建点到面的距离残差。

Studying…… 246

Android 开发之初识 Android

最近在学习 Android 方面的知识,刚好趁着这个机会整理一下 Android 开发方面的一些知识点。从标题中可以看到,今天只是给大家简单介绍一下 Android 的内容,并没有涉及到代码方面的内容,代码层面的内容会在下一篇文章中进行展示。首先先看一下本文的大纲 内容大纲1. Android 前世今生1.1 Android 介绍1.2 Android 发展历程2. Android 架构2.1 Linux内核层2.2 Libraries 系统运行库2.3 应用框架层2.4 应用层3. Android 四大组

小曾同学的博客 4182

【Python图像处理局部放大】输入图像,选择两处不同的区域进行放大操作,然后将原始图像、处理后的两个区域以及标记合成新图像进行展示

Python图像处理与区域放大连接标记:选择特定区域并对其进行放大操作,然后将原始图像、处理后的两个区域进行标记后的新图像保存到文件中。

qq_35831906的博客 2243

Android UI开发(一)初识安卓

Android的优势:源代码完全开放,便于开发人员更清楚的把握实现细节,有利于开发出更具差异性的应用;Android 它是基于Linux内核(内核提供系统核心服务,如进程、内存、电源管理,网络连接,驱动与安全等);它采用了对有限内存、电池和CPU 优化过的虚拟机Dalvik,而且它具有强大的Linux 社区的支持。 Android是Google于2007年宣布的基于Linux平台的开源手机操作系...

JAVE_LOVER 140

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

2024年安卓最全Android Volley完全解析(一),初识Volley的基本用法(1),vivo安卓开发面试

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。

2401_84562425的博客 697

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Android开发之旅一初识Activity

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

gaohang43的专栏 624

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

初识Android开发(一)

1、第一个Android项目定义组件:&lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_heig...

sl947的博客 282

Kotlin开发Android系列文章(一)——初识Kotlin

Android系统有了自己的开发语言Kotlin,谷歌称这是更高效且智能的语言。

永远不要停下学习的脚步。 2834

【笔记一】【1A课程】android开发-初识view

【笔记】【1A课程】android开发-初识view在1A-01~1A-06 的课程里,主要讲解了以下几点内容: 学习的大纲和简介,有几个核心部分 view的介绍 XML是什么 LaTex数学公式 UML序列图和流程图 离线写博客 1A~01 第一课第一小节:学习”view(视窗)“是什么?view就是手机上看到的东西,像什么选择框,文字,图片,按钮之类的第一课第二小节:学习怎么去调节view的属性

AohAzizz的博客 492

Android蓝牙BLE开发(一)——初识低功耗蓝牙BLE

简介 BLE的全称叫做 Bluetooth Low Energy,也称之为低功耗蓝牙,属于蓝牙技术中的一种。与之对应的是 Classic Bluetooth,经典蓝牙。当然,经典蓝牙是最先推出来的,后面才有了 LE 的版本。在兼容性上,LE 的蓝牙不兼容 Classic 的版本,可以理解成为独立的一种蓝牙形态。旨在针对低功耗的领域进行的一种无线数据传送的解决方案。 关键概念 中心与外设角色: 在B...

weixin_42046829的博客 621

android跨平台开发系列之-初识webview(一)

一、初识webview 想了解一个类是用来干什么的,有什么用,最好的方法就是研究它的源码,源码中通常在前面写了大量的注释,接下来我们看下webview的源码。 A View that displays web pages. This class is the basis upon which you * can roll your own web browser or simply dis

ArcticOcean's blog 1493

Android开发学习笔记(一)——初识Android

对于一名程序员来说,“自顶向下”虽然是一种最普通不过的分析问题和解决问题的方式,但其却是简单且较为有效的一种。所以,将其应用到Android的学习中来,不至于将自己的冲动演变为一种盲目和不知所措。 根据“自顶向下”、“从整体到局部”的思想,我的基本学习思路是: 从全局入手,宏观的了解Android平台的架构 了解基于Android平台的应用程序的运行原理 了解环境的搭建,为后面结合实践...

weixin_34113237的博客 170

在 Android 开发中使用 Kotlin 协程 (一) -- 初识 Kotlin 协程

前言 最近在研究 Kotlin 协程,发现功能真的超级强大,很有用,而且很好学,如果你正在或计划使用 Kotlin 开发 Android,那么 Kotlin 协程你一定不能错过! 协程是什么? 我们平常接触的都是进程、线程,在开发中使用最多的就是线程,比如主线程、子线程,而且操作系统里最小可操作的单元就是线程,那协程又是什么?协程是比线程更小的单位,但并不是说在操作系统里最小可操作单元就从线程变成...

weixin_34191845的博客 5252

【转】Android开发学习笔记(一)——初识Android

对于一名程序员来说,“自顶向下”虽然是一种最普通不过的分析问题和解决问题的方式,但其却是简单且较为有效的一种。所以,将其应用到Android的学习中来,不至于将自己的冲动演变为一种盲目和不知所措。 根据“自顶向下”、“从整体到局部”的思想,我的基本学习思路是: 从全局入手,宏观的了解Android平台的架构 了解基于Android平台的应用程序的运行原理 了解环境的搭建,为后面结合实践...

weixin_30828379的博客 108

初识安卓开发之Intent(一)- 显示和隐式Intent

Intent是什么? 简单地说,intent是安卓程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。 Intent可以简单地分成显式Intent和隐式Intent。 显式Intent 显式Intent中,其中一个构造函数的重载是Intent(Context packageContext, Class cls) ,前者是要启动活动的上下文

希夏普的博客 843
上一篇: 实现安卓程序退出后重进自己程序的一个小功能(android,unity)
下一篇: 【安卓开发】【二】活动Activity
HelloCLanguage
博客等级 码龄10年 10粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值