当前位置: 首页 > news >正文

嘉定区网站建设网站和网店区别

嘉定区网站建设,网站和网店区别,网站 百度地图,网页设计模板代码免费文章目录一 App的开发特点1.1 App的运行环境1.2 App开发语言1.3 java语言开发1.4 Kotlin语言开发1.5 XML1.6 App连接的数据库二 App的工程结构2.1 App工程目录结构2.2 构建工具Grade2.3 编译配置文件build.gradle2.4 运行配置文件AndroidManifest.xml2.4.1 application2.4.2 ac… 文章目录一 App的开发特点1.1 App的运行环境1.2 App开发语言1.3 java语言开发1.4 Kotlin语言开发1.5 XML1.6 App连接的数据库二 App的工程结构2.1 App工程目录结构2.2 构建工具Grade2.3 编译配置文件build.gradle2.4 运行配置文件AndroidManifest.xml2.4.1 application2.4.2 activity三 App的设计规范3.1 界面设计与代码逻辑3.2 完整的页面创建过程包括三个步骤3.3 XML标记描绘应用界面3.4 Java代码书写程序逻辑3.5 App的活动页面3.5.1 创建新的App页面3.5.2 快速生成页面源码3.5.3 跳转页面的实现一 App的开发特点 1.1 App的运行环境 App是在手机上运行的一类应用软件而应用软件依附于操作系统。智能手机流行的操作系统有两种分别是安卓手机的Android和苹果手机的iOS。 App开发为Android上的应用开发Android系统基于Linux内核但不等于Linux系统故App应用无法在Linux系统上运行。 Android Studio是谷歌官方推出的App开发环境它提供了三种操作系统的安装包分别是Windows、Mac和Linux。开发者可以在电脑上安装Android Studio并使用Android Studio开发App项目但是编译出来的App在电脑上跑不起来。那该怎样验证App的界面展示及其业务逻辑是否正确呢为了提供App开发的功能测试环境一种办法是利用Android Studio创建内置的模拟器然后启动内置模拟器再在模拟器上运行App应用。另一种办法是使用真实手机测试App该办法在实际开发中更为常见。利用真机调试要求具备以下5个条件 使用数据线把手机连到电脑上 手机的电源线拔掉插头就是数据线。数据线长方形的一端接到电脑的USB接口即可完成手机与电脑的连接。 在电脑上安装手机的驱动程序 一般电脑会把手机当作USB存储设备一样安装驱动大多数情况会自动安装成功。如果遇到少数情况安装失败需要先安装手机助手由助手软件下载并安装对应的手机驱动。 打开手机的开发者选项并启用USB调试 手机出厂后默认关闭开发者选项需要开启开发者选项才能调试App。打开手机的设置菜单进入“系统”→“关于手机”→“版本信息”页面这里有好几个版本项每个版本项都使劲点击七、八下总会有某个版本点击后出现“你将开启开发者模式”的提示。继续点击该版本开启开发者模式然后退出并重新进入设置页面此时就能在“系统”菜单下找到“开发者选项”或“开发人员选项”了。进入“开发者选项”页面启用“开发者选项”和“USB调试”两处开关允许手机通过USB接口安装调试应用。 将连接的手机设为文件传输模式并允许计算机进行USB调试 手机通过USB数据线连接电脑后屏幕弹出选择列表请求选择某种USB连接方式。这里记得选中“传输文件”因为充电模式不支持调试App。选完之后手机桌面弹出确认窗口提示开发者是否允许当前计算机进行USB调试。这里勾选“始终允许使用这台计算机进行调试”选项再点击右下角的确定按钮允许计算机在手机上调试App 手机要能正常使用 锁屏状态下Android Studio向手机安装App的行为可能会被拦截所以要保证手机处于解锁状态才能顺利通过电脑安装App到手机上。经过以上步骤总算具备通过电脑在手机上安装App的条件了。启动Android Studio在顶部中央的执行区域看到已连接的手机信息单击手机名称右边的三角运行按钮等待Android Studio往手机上安装App 如果是初学阶段可以先使用模拟器等后期在使用真机测试 1.2 App开发语言 基于安卓系统的App开发主要有两大技术路线分别是原生开发和混合开发。 原生开发指的是在移动平台上利用官方提供的编程语言例如Java、Kotlin等、开发工具包SDK、开发环境Android Studio进行App开发混合开发指的是结合原生与H5技术开发混合应用也就是将部分App页面改成内嵌的网页这样无须升级App、只要覆盖服务器上的网页即可动态更新App页面。 在创建新项目时弹出的项目配置对话框Language栏进行选择 1.3 java语言开发 Java是Android开发的主要编程语言虽然Android开发需要Java环境但没要求电脑上必须事先安装JDK因为Android Studio已经自带了JRE依次选择菜单File→Project Structure弹出项目结构对话框 1.4 Kotlin语言开发 Kotlin是谷歌官方力推的又一种编程语言它与Java同样基于JVMJava Virtual Machine即Java虚拟机且完全兼容Java语言。创建新项目时在Language栏下拉可选择Kotlin 1.5 XML XML全称为Extensible Markup Language即可扩展标记语言.XML并非编程语言只是一种标记语言。它类似于HTML利用各种标签表达页面元素以及各元素之间的层级关系及其排列组合。每个XML标签都是独立的控件对象标签内部的属性以“android:”打头表示这是标准的安卓属性各属性分别代表控件的某种规格。 TextViewandroid:idid/tvandroid:layout_heightwrap_contentandroid:layout_widthwrap_contentandroid:textHello World! /id控件的编号。layout_width控件的布局宽度wrap_content表示刚好包住该控件的内容。layout_height控件的布局高度wrap_content表示刚好包住该控件的内容。text控件的文本 1.6 App连接的数据库 Android内置了专门的数据库名为SQLite它遵循关系数据库的设计理念SQL语法类似于MySQL。SQLite无须单独安装因为它内嵌到应用进程当中所以App无须配置连接信息即可直接对其增删改查。由于SQLite嵌入到应用程序省去了配置数据库服务器的开销因此它又被归类为嵌入式数据库。 手机端的App连同程序代码及其内置的嵌入式数据库其实是个又独立又完整的程序实体它只负责手机上的用户交互与信息处理该实体被称作客户端。后端的Java Web服务包括Web代码和数据库服务器同样构成另一个单独运行的程序实体它只负责后台的业务逻辑与数据库操作该实体被称作服务端。客户端与服务端之前通过HTTP接口通信每当客户端觉得需要把信息发给服务端或者需要从服务端获取信息时客户端便向服务端发起HTTP请求服务端收到客户端的请求之后根据规则完成数据处理并将处理结果返回给客户端。这样客户端经由HTTP接口并借服务端之手方能间接读写后端的数据库服务器。 一个具备用户管理功能的App系统实际上并不单单只是手机上的一个应用还包括与其对应的Java Web服务。手机里的客户端App面向的是手机用户App与用户之间通过手机屏幕交互而后端的服务程序面向的是手机App客户端与服务端之间通过HTTP接口交互。 二 App的工程结构 2.1 App工程目录结构 App工程分为两个层次 第一个层次是项目依次选择菜单File→New→New Project即可创建新项目。另一个层次是模块模块依附于项目每个项目至少有一个模块也能拥有多个模块依次选择菜单File→New→New Module即可在当前项目创建新模块。 一般所言的“编译运行App”指的是运行某个模块而非运行某个项目因为模块才对应实际的App。 项目下面有两个分类一个是app代表app模块另一个是Gradle Scripts app下面有3个子目录加粗样式其功能说明如下 manifests子目录只有一个XML文件即AndroidManifest.xml——App的运行配置文件。java子目录有3个com.xxx.myapp包其中第一个包存放当前模块的Java源代码后面两个包存放测试用的Java代码。res子目录存放当前模块的资源文件。该目录同时又有4个子目录 drawable目录存放图形描述文件与图片文件。layout目录存放App页面的布局文件。mipmap目录存放App的启动图标。values目录存放一些常量定义文件。例如字符串常量strings.xml、像素常量dimens.xml、颜色常量colors.xml、样式风格定义styles.xml等xml可在运行时通过调用 Resources.getXML() 读取的任意 XML 文件。各种 XML 配置文件如可搜索配置都必须保存在此处。 Gradle Scripts下面主要是工程的编译配置文件主要有 文件名称说明build.gradle该文件分为项目级与模块级两种用于描述App工程的编译规则。proguard-rules.pro用于描述Java代码的混淆规则。gradle.properties用于配置编译工程的命令行参数一般无须改动。settings.gradle配置需要编译的模块。初始内容为include :app表示只编译app模块。local.properties项目的本地配置文件它在工程编译时自动生成用于描述开发者电脑的环境配置包括SDK的本地路径、NDK的本地路径等。这里所说的混淆规则是apk的安全保护措施在打包时将相关的代码内容进行替换以起到混淆窥探者保护程序的版权 2.2 构建工具Grade Gradle 是一个项目自动化构建工具帮我们做了依赖、打包、部署、发布、各种渠道的差异管理等工作 2.3 编译配置文件build.gradle 新创建的App项目默认有两个build.gradle一个是Project项目级别的build.gradle另一个是Module模块级别的build.gradle 项目级别的build.gradle指定了当前项目的总体编译规则 //全局配置文件中定义版本号然后在模块级别的配置文件进行配置 plugins {id com.android.application version 7.4.1 apply falseid com.android.library version 7.4.1 apply false }补充内容 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()jcenter()}dependencies {// 配置gradle插件版本下面的版本号就是Android Studio的版本号classpath com.android.tools.build:gradle:4.1.0} }在该文件中可添加buildscript的repositories和dependencies两个节点其中repositories节点用于设置Android Studio插件的网络仓库地址而dependencies节点用于设置gradle插件的版本号。 由于官方的谷歌仓库位于国外下载速度相对较慢因此可在repositories节点添加阿里云的仓库地址方便国内开发者下载相关插件。 模块级别的build.gradle对应于具体模块每个模块都有自己的build.gradle它指定了当前模块的详细编译规则 plugins {id com.android.application }android {//配置命名空间namespace com.yang.myfirstapplication// 指定编译用的SDK版本号。比如33表示使用Android 13编译compileSdk 33//指定编译工具的版本号。// 头两位数字必须与compileSdkVersion保持一致具体的版本号可在sdk安装目录的“sdk\build-tools”下找到buildToolsVersion 30.0.3defaultConfig {// 指定该模块的应用编号也就是App的包名applicationId com.yang.myfirstapplication//指定App适合运行的最小SDK版本号如21 表示至少要在Android 5.0上运行minSdk 21//指定目标设备的SDK版本号。【App最希望在该版本的Android上运行】targetSdk 33//指定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}}compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}} // 指定App编译的依赖信息 dependencies {//版本兼容库implementation androidx.appcompat:appcompat:1.4.1//网络依赖库在构建项目时grade自动去网络上下载相应的依赖文件implementation com.google.android.material:material:1.5.0implementation androidx.constraintlayout:constraintlayout:2.1.3// 指定单元测试编译用的junit版本号testImplementation junit:junit:4.13.2androidTestImplementation androidx.test.ext:junit:1.1.3androidTestImplementation androidx.test.espresso:espresso-core:3.4.0 }Gradle工具的版本配置在gradle\wrapper\gradle-wrapper.properties也可以依次选择菜单File→Project Structure→Project在弹出的设置页面中修改Gradle Version 注意每个版本的Android Studio都有对应的Gradle版本只有二者的版本正确对应App工程才能成功编译具体的版本匹配信息参看官网内容 2.4 运行配置文件AndroidManifest.xml AndroidManifest.xml指定了App的运行配置信息它是一个XML描述文件位置 ?xml version1.0 encodingutf-8? manifest xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:toolshttp://schemas.android.com/tools!--allowBackup应用备份dataExtractionRules:备份和转移配置fullBackupContent:自动备份配置icon:应用图标label:应用名称supportsRtl: 阿拉伯语的支持theme: 应用显示风格targetApi: 目标Android版本--applicationandroid:allowBackuptrueandroid:dataExtractionRulesxml/data_extraction_rulesandroid:fullBackupContentxml/backup_rulesandroid:iconmipmap/ic_launcherandroid:labelstring/app_nameandroid:supportsRtltrueandroid:themestyle/Theme.MyFirstApplicationtools:targetApi31!-- activity节点指定了该App拥有的活动页面信息其中拥有android.intent.action.MAIN的activity说明它是入口页面--activityandroid:name.MainActivityandroid:exportedtrueintent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filter/activityactivity android:name.MainActivity2/activity/application/manifestAndroidManifest.xml的根节点为manifest它的package属性指定了该App的包名 2.4.1 application manifest的application节点的各属性简介 属性名说明android:allowBackup应用备份开关。【true表示允许false则表示不允许。】允许用户备份系统应用和第三方应用的apk安装包和应用数据以便在刷机或者数据丢失后恢复应用用户即可通过adb backup和adb restore来进行对应用数据的备份和恢复。android:icon指定App在手机屏幕上显示的图标。android:label指定App在手机屏幕上显示的名称。android:roundIcon指定App的圆角图标。android:supportsRtl是否支持阿拉伯语波斯语这种从右往左的文字排列顺序。为true表示支持为false则表示不支持。android:theme指定App的显示风格 application属性的官方文档 2.4.2 activity Activity 是一个应用程序组件提供一个屏幕用户可以用来交互为了完成某项任务application下的activity节点它是活动页面的注册声明只有在AndroidManifest.xml中正确配置了activity节点才能在运行时访问对应的活动页面。初始配置的MainActivity正是App的默认主页。intent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER / /intent-filter完整的活动页面注册标签!--活动页面的注册声名--activityandroid:name.MainActivityandroid:exportedtrue!--如果有多个activity进行如下的intent-filter配置桌面会出现两个app图标--intent-filter!--action:配置入口页面--action android:nameandroid.intent.action.MAIN /!--category:配置屏幕是否显示图标--category android:nameandroid.intent.category.LAUNCHER //intent-filter/activityactivity android:name.MainActivity2/activity /application三 App的设计规范 App工程的源码设计规范App将看得见的界面设计与看不见的代码逻辑区分开然后利用XML标记描绘应用界面同时使用Java代码书写程序逻辑从而形成App前后端分离的设计规约有利于提高App集成的灵活性。 3.1 界面设计与代码逻辑 类似与Web网站前后端分离的模式App也采用了前后端分离设计 App前后端分离的优势 使用XML文件描述App界面方便及时预览界面效果提高界面布局的复用率如一个页面布局可以被多处代码复用提高后台逻辑代码的利用率如不同的页面布局可以使用同一段java代码来实现相同的逻辑处理 3.2 完整的页面创建过程包括三个步骤 在 layout 目录下创建 XML 文件创建与 XML 文件对应的 Java 代码在 AndroidManifest.xml 中注册页面配 3.3 XML标记描绘应用界面 ?xml version1.0 encodingutf-8? !-- 线性布局 match_parent意思是与上级视图保持一致-- LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:gravitycenterandroid:orientationvertical!-- 文本视图名字叫做tv显示的文字内容为“Hello World!” --!--android:idid/tv表示给该文本视图起名字编号--TextViewandroid:idid/tvandroid:layout_heightwrap_contentandroid:layout_widthwrap_contentandroid:textHello World! / /LinearLayout上面的XML内容外层的LinearLayout标签为该界面的根节点内层的TextView为控件节点。由于根节点和布局节点都存在下级节点因此它们要有配对的标签头与标签尾才能将下级节点包裹起来。根节点其实是特殊的布局节点它的标签名称可以跟布局节点一样区别之处在于下列两点 每个界面只有一个根节点却可能有多个布局节点也可能没有中间的布局节点此时所有控件节点都挂在根节点下面。根节点必须配备xmlns:androidhttp://schemas.android.com/apk/res/android表示指定XML内部的命名空间有了这个命名空间Android Studio会自动检查各节点的属性名称是否合法 3.4 Java代码书写程序逻辑 复杂的业务逻辑由后台的代码实现 public class MainActivity extends AppCompatActivity {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);} }注意onCreate内部的setContentView方法直接引用了布局文件的名字activity_main该方法的意思是往当前活动界面填充activity_main.xml的布局内容。在MainActivity中修改文本内容 public class MainActivity extends AppCompatActivity {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//当前的页面布局采用的是res/layout/activity_main.xmlsetContentView(R.layout.activity_main);//获取名叫tv的TextView控件注意添加导包语句importandroid.widget.TextView;TextView tv findViewById(R.id.tv);//设置TextView控件的文字内容tv.setText(你好 Android!);} }3.5 App的活动页面 App活动页面的基本操作首先手把手地分三步创建新的App页面接着通过活动创建菜单快速生成页面源码然后说明了如何在代码中跳到新的活动页面 3.5.1 创建新的App页面 若要增加新的页面完整的页面创建过程包括3个步骤创建XML文件、创建Java代码、注册页面配置 创建XML文件 在Android Studio左上方找到项目结构图右击res目录下面的layout ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticalandroid:gravitycenterTextViewandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:textstring/text//LinearLayout创建Java代码import android.os.Bundle; import android.view.Menu;import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity;public class MainActivity2 extends AppCompatActivity {Overrideprotected void onCreate(Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);//加载来自activity_main3的页面布局setContentView(R.layout.activity_main3);} }注册页面配置 在项目中注册该页面打开AndroidManifest.xml在application节点内进行配置 activity android:nameMainActivity2 /3.5.2 快速生成页面源码 Android Studio早已集成快速创建页面的功能只要一个对话框就能完成所有操作。【创建XML文件、创建Java代码、注册页面配置】右击java目录下面的包名右键菜单中依次选择New→Activity→Empty Activity 3.5.3 跳转页面的实现 一旦创建好新页面就得在合适的时候跳到该页面假设出发页面为A到达页面为B那么跳转动作是从A跳到B。由于启动App会自动打开默认主页MainActivity因此跳跃在MainActivity跳跃的终点则为目标页面的Activity。这种跳转动作翻译为Android代码格式形如startActivity(newIntent(源页面.this, 目标页面.class));。如果目标页面名为MainActivity2跳转代码如下 import androidx.appcompat.app.AppCompatActivity;import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView;public class MainActivity extends AppCompatActivity {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);TextView tv findViewById(R.id.tv);tv.setText(你好 Android!);Button button findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View view) {//Intent intent new Intent();//intent.setClass(MainActivity.this,MainActivity2.class);//startActivity(intent);startActivity(new Intent(MainActivity.this,MainActivity2.class));}});} }
http://www.hkea.cn/news/14307849/

相关文章:

  • 宁波网站建设专业定制小程序搭建怎么赚钱
  • 织梦网站301跳转怎么做网络管理系统的管理软件
  • 二手物品交换网站建设wordpress公司网页主题
  • 网站可信图标景宁建设局网站官网
  • 一个阿里云服务器可以放几个网站佛山网页网站设计
  • 禹城做网站的保险资料网站有哪些
  • 湖北工程建设信息网站做企业网站好处
  • 怎么做网站上打字体培训网站开发机构
  • 建网站支持设备是什么意思设计建设网站哪家好
  • 大连做网站排名网页设计毕业设计理念
  • 网站排名易下拉霸屏黄页网页的推广网站下载
  • 花卉网站建设规划书超级搜索引擎
  • 如何建设网站服务器wordpress ui框架
  • 台州网站建设设计网站服务器租用价格
  • 找源码的网站品牌策划岗位职责
  • 百度做网站审核要多久杭州职称评审系统网站
  • 动易如何做网站织梦模板首页修改教程
  • wordpress直播网站主题坪山网站建设流程
  • 西安易码建站个人网页官方网站
  • 跟我一起做网站pdf电驴关键词分析网站
  • 响应式网站不加载图片中国建筑有限公司西南分公司网页设计
  • 长沙专业做网站排名电商网站开发代码
  • 襄垣城乡建设管理局的网站网站图片等比缩小
  • 注册什么公司给别人做网站崇卅市网站建设
  • 软件培训网站学校网站设计实验报告
  • 做360效果图网站房屋设计风格
  • 网站建设开发ppt个人做网站语言
  • 最简单的手机网站制作山东济南建设网
  • 检察门户网站 建设意义马蹄室内设计官网
  • 贵阳商城网站开发换网站公司