【移动开发】Android应用开发者应该知道的东西

简介:

作为一个有Java基础的开发者来说,初步学习Android开发是很容易的一件事情,我身边就有同学是学java的,由于对Android开发感兴趣,就开始学习它,不到一个月的时间就做出了一款简单实用的小应用软件。可能会有好多人会问那专门搞Android开发的人和“半路进来”的人有哪些差距那?这里我想说的是,会做Android应用的人,并不一定代表他很懂Android,Android系统之所以作为当前世面上主流的智能手机系统,除了开源外,还有它自身系统的优势(博客http://smallwoniu.blog.51cto.com/blog/3911954/1248169)想要彻底掌握Android应用层开发也不是那么容易的。


今天我就总结了一些Android开发中的琐碎细节,希望能帮助到大家!


一。ADB(Android Debug Bridge)

打开我们的android中sdk/platform-tools文件夹,里面存放着许多android开发过程中所需要的系统工具。

000004941.jpg

adb.exe

介绍:起到调试桥的作用。通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是debug工具。adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行

说明:借助adb工具,我们可以管理设备或手机模拟器的状态。还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。其实简而言说,adb就是连接Android手机与PC端的桥梁,可以让用户在电脑上对手机进行全面的操作(获取手机数据)


常用adb命令:

adb devices 列出所有的连接设备 (DDMS左侧的窗口)

reset adb 重启adb的调试桥

adb kill-server 杀死adb调试桥

adb start-server 启动adb调试桥

adb install helloworld.apk 安装命令

(找到apk后可以直接将其拖入dos窗口即可,省的手动拷路径)

adb uninstall com.zhf.helloworld 卸载命令

adb shell 来到手机终端 执行linux命令

adb -s emulator-5554 install helloworld.apk 往指定设备安装 


注:重启不了情况:端口可能被占用,在命令行中敲 netstat -ano, 查看端口号命令),这里我们就知道了像豌豆荚,360手机助手等软件都有自己的adb,每当有手机连接电脑时会执行自己adb.exe,来对手机进行一系列的操作。


二。andriod和java虚拟机的区别


区别 JVM
Dalvik JVM
编译后的文件格式 .java->.class->.jar .java->.class->.dex->.odex
编译程序

jdk中javac.exe

sdk 中dex.exe
基于的架构

基于栈的结构

基于寄存器的结构

注:jar效率低,但通用性强,非智能手机也能玩,而APK是android的专属安装文件,非android的手机就不能运行,效率高,一般有apk的优先要apk格式的

003049814.jpg

上面这张结构图我们可以清晰的知道,二者的执行过程:

.jar--->包含许多.class文件,内部执行javac.exe编译过程是把每个单独的.java文件转换成.class文件(包括Header、Class、Filed、Method、Attributes等)统一遍历一遍所需时间较长,执行安装程序速度慢(windows上setup.exe安装过程就是解压文件到电脑硬盘上


.apk--->只含有一个.dex文件,内部执行dx.bat将所有class文件中的Header、Class、Filed、Method、Attributes 等统一分类放在一起,转换成.dex文件,效率较高。


三。android应用程序的安装过程

首先,我们看一下工程下面的bin文件夹

004022601.jpg

里面包含了我们最后生成的apk文件,所有的res的资源,以及重要的classes.dex

010046854.jpg

这张图清晰的反映了我们的Android项目打包、安装过程:

打包:首先通过javac.exe将.java文件转换成.class文件,之后通过dx.bat将其转换成classes.dex文件,最后就是将其和整个项目对应的文件夹打成.apk安装包

安装:首先是对应用程序的签名,之后先将apk复制到手机上,其次是在手机上对apk的解压缩过程


四、启动应用程序


我们双击apk文件,如果电脑装了豌豆荚,就会自动关联豌豆荚将软件撞到手机上,这是为什么那?

原因就是类似于我们在Windows上双击.txt文件会打开记事本程序,是因为我们在系统盘的注册表上注册了该应用程序所关联的文件类型,那么我们在手机上打开应用程序,首先我们打开Android系统的注册表文件:

打开DDMS下的File Explore选项,会列出手机的所有文件信息,在/data目录下system系统目录下netstats文件夹下有两个目录

005607936.jpg

packages.xml : android系统的注册表(每安装一个应用程序都会在此写上配置信息,上以后要是加载这个程序,会首先去读取这个注册表加载到内存中获取其数据)

005840516.jpg

packages.list : 所有应用程序的包列表 和 对应数据的目录

005916846.jpg

五、模拟器

我们创建好的一个模拟器启动后(相当一个应用程序启动),会在C盘用户目录下.android/avd下生成一个文件夹目录

011617598.jpg


以上这些都是作为一个Android应用开发者你应该知道的一些东西,因为本人也是在学习Android,边学边总结,有遗漏或者有误的地方还请指正,谢谢!





     本文转自zhf651555765 51CTO博客,原文链接:http://blog.51cto.com/smallwoniu/1320635,如需转载请自行联系原作者




相关实践学习
使用CLup和iSCSI共享盘快速体验PolarDB for PostgtreSQL
在Clup云管控平台中快速体验创建与管理在iSCSI共享盘上的PolarDB for PostgtreSQL。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
9天前
|
移动开发 Java Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【4月更文挑战第3天】在移动开发领域,性能优化一直是开发者关注的焦点。随着Kotlin的兴起,其在Android开发中的地位逐渐上升,但关于其与Java在性能方面的对比,尚无明确共识。本文通过深入分析并结合实际测试数据,探讨了Kotlin与Java在Android平台上的性能表现,揭示了在不同场景下两者的差异及其对应用性能的潜在影响,为开发者在选择编程语言时提供参考依据。
|
10天前
|
数据库 Android开发 开发者
构建高效Android应用:Kotlin协程的实践指南
【4月更文挑战第2天】随着移动应用开发的不断进步,开发者们寻求更流畅、高效的用户体验。在Android平台上,Kotlin语言凭借其简洁性和功能性赢得了开发社区的广泛支持。特别是Kotlin协程,作为一种轻量级的并发处理方案,使得异步编程变得更加简单和直观。本文将深入探讨Kotlin协程的核心概念、使用场景以及如何将其应用于Android开发中,以提高应用性能和响应能力。通过实际案例分析,我们将展示协程如何简化复杂任务,优化资源管理,并为最终用户提供更加流畅的体验。
|
10天前
|
开发框架 安全 Android开发
探索安卓系统的新趋势:智能家居应用的蓬勃发展
随着智能家居概念的兴起,安卓系统在智能家居应用领域的应用日益广泛。本文将探讨安卓系统在智能家居应用开发方面的最新趋势和创新,以及其对用户生活的影响。
11 2
|
13天前
|
缓存 监控 Java
构建高效Android应用:从优化用户体验到提升性能
在竞争激烈的移动应用市场中,为用户提供流畅和高效的体验是至关重要的。本文深入探讨了如何通过多种技术手段来优化Android应用的性能,包括UI响应性、内存管理和多线程处理。同时,我们还将讨论如何利用最新的Android框架和工具来诊断和解决性能瓶颈。通过实例分析和最佳实践,读者将能够理解并实施必要的优化策略,以确保他们的应用在保持响应迅速的同时,还能够有效地利用系统资源。
|
13天前
|
Java Android开发
Android 开发获取通知栏权限时会出现两个应用图标
Android 开发获取通知栏权限时会出现两个应用图标
12 0
|
18天前
|
编解码 算法 Java
构建高效的Android应用:内存优化策略详解
随着智能手机在日常生活和工作中的普及,用户对移动应用的性能要求越来越高。特别是对于Android开发者来说,理解并实践内存优化是提升应用程序性能的关键步骤。本文将深入探讨针对Android平台的内存管理机制,并提供一系列实用的内存优化技巧,以帮助开发者减少内存消耗,避免常见的内存泄漏问题,并确保应用的流畅运行。
|
19天前
|
调度 数据库 Android开发
构建高效Android应用:Kotlin协程的实践与优化
在Android开发领域,Kotlin以其简洁的语法和平台友好性成为了开发的首选语言。其中,Kotlin协程作为处理异步任务的强大工具,它通过提供轻量级的线程管理机制,使得开发者能够在不阻塞主线程的情况下执行后台任务,从而提升应用性能和用户体验。本文将深入探讨Kotlin协程的核心概念,并通过实例演示如何在实际的Android应用中有效地使用协程进行网络请求、数据库操作以及UI的流畅更新。同时,我们还将讨论协程的调试技巧和常见问题的解决方法,以帮助开发者避免常见的陷阱,构建更加健壮和高效的Android应用。
28 4
|
21天前
|
移动开发 Java Android开发
构建高效Android应用:Kotlin协程的实践之路
【2月更文挑战第31天】 在移动开发领域,性能优化和流畅的用户体验一直是开发者追求的目标。随着Kotlin语言的流行,其异步编程解决方案——协程(Coroutines),为Android应用带来了革命性的并发处理能力。本文将深入探讨Kotlin协程的核心概念、设计原理以及在Android应用中的实际应用案例,旨在帮助开发者掌握这一强大的工具,从而提升应用的性能和响应能力。
|
22天前
|
安全 Android开发 开发者
构建高效Android应用:Kotlin与协程的完美结合
【2月更文挑战第30天】在移动开发领域,性能优化和流畅的用户体验是关键。本文深入探讨了如何通过结合Kotlin语言和协程技术来提升Android应用的性能和响应能力。我们将分析Kotlin的优势,介绍协程的基本概念,并通过实际案例展示如何在应用中实现协程以简化异步编程,从而提供更加高效的解决方案。
|
22天前
|
Java 编译器 Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【2月更文挑战第30天】 随着Kotlin成为开发Android应用的首选语言,开发者社区对于其性能表现持续关注。本文通过深入分析与基准测试,探讨Kotlin与Java在Android平台上的性能差异,揭示两种语言在编译效率、运行时性能和内存消耗方面的具体表现,并提供优化建议。我们的目标是为Android开发者提供科学依据,帮助他们在项目实践中做出明智的编程语言选择。

热门文章

最新文章