(第一部分是基础App使用)
吐槽一下,Android Studio以及Gradle是真的很难用1。就算我跑一个Hello World,都有好几个报错。有JDK的,有要翻墙下Gradle的,有dependencies的,总之就是很难顺利跑起来。记得之前还在上课写android,就算是老师发布的镜像工程,因为Gradle的问题也搞出来很多乌龙,折腾半天。天啊,这玩意真的是我用过最难用的IDE,也许没有之一。
(Gradle类似makefile,我其实觉得可以不用新搞一套的。有问题你谷歌优化make.exe不就完了。但是别人就是任性,我们底层码农也没法。)
Android Studio很难用2也很神奇的是就算你用别人的全套工程,在你本地也不一定跑的起来。。。照样有各种报错。我今天跑了三个都失败,最后那个只有慢慢改错才跑起来。就是真挺无语的。
Android最后难用3就是Kotlin,个人认为完全就是谷歌无耻。用Java把广大码农哄骗进来,然后强行切换,用Kotlin把码农们绑死在他的船上。如果将来谷歌像诺基亚一样沉了,普通码农也只有跟着沉底。
其实IDE嘛,还有GUI应用程序框架,其实有很多,比如VC++,QT,IOS,安卓,甚至web也算一种,骨子里内容其实都是那些。GUI框架,各种控件,消息管理,大家你抄我我抄你,东西总的来说差别也不大。会一个其它的就是换套皮。
刚开始可以用官方Hello World:https://developer.android.com/codelabs/basic-android-kotlin-compose-first-app?hl=zh-cn#0
好吧,最后还是跑起来了。看看代码结构倒是也算清晰。
看了下代码结构,大的部分有这几个:
App | Manifests | AndroidManifest.xml 文件,该文件包含应用程序的元数据、权限、组件信息等。这个文件是 Android 应用的配置文件,描述了应用的基本信息和行为。 |
java | 源代码,包含测试代码。 | |
res | 存放应用程序使用的各种资源文件,如布局文件、图像、字符串、颜色等。经常改的是那个layout文件。 | |
Gradle | 包含 Gradle Wrapper 相关的文件 | |
(generated)都是IDE生成的东西,一般可以不用管。
从框架上来说App是最上层,主要对接的就是Android的Framework部分,所以主要学习的也是Framework:
后面就是慢慢的用Android framework的包了,查了了GPT,列了一些最常用的:
android.app | 包含用于创建 Android 应用程序的核心类,如 Activity、Service、BroadcastReceiver 等。 |
android.content | 提供了与应用程序数据和组件之间的通信相关的类,如 Intent、SharedPreferences 等。 |
android.os | 包含与操作系统交互的类,如 Handler、Looper、Bundle 等。 |
android.widget | 提供了用于构建用户界面的各种 UI 组件,如 Button、TextView、ListView 等。 |
android.view | 包含用于构建用户界面的基本类和接口,如 View、ViewGroup 等。 |
android.support(现在是 androidx) | 提供了向后兼容性支持,包含了许多 Android 最新特性的兼容版本。例如,androidx.appcompat 提供了兼容性的 AppCompatActivity。 |
android.net | 提供了与网络相关的类,如 ConnectivityManager、NetworkInfo 等。 |
android.database | 包含用于访问和管理应用程序数据库的类,如 SQLiteOpenHelper、Cursor 等。 |
android.location | 提供了与位置服务相关的类,如 LocationManager、LocationListener 等。 |
android.media | 包含用于处理多媒体内容的类,如 MediaPlayer、AudioManager 等。 |
android.graphics | 提供了图形处理相关的类,如 Bitmap、Canvas、Paint 等。 |
android.preference | 包含用于创建应用程序设置界面的类,如 PreferenceActivity、PreferenceFragment 等。 |
android.util | 包含一些实用工具类,如 Log 用于记录日志、SparseArray 用于优化稀疏数组等。 |
再详细就看看google的文档把,说明是在:
https://developer.android.com/reference/packages
后面慢慢再看吧,就酱。。。