Android开发零碎知识点总结
以下是对Android开发零碎知识点总结:
1. 环境搭建
- Java:作为Android开发的传统语言,需要掌握面向对象编程、集合框架、异常处理、多线程和网络编程等。
- Kotlin:Google推荐的Android开发语言,提供了更简洁的语法和空安全等特性,需要掌握其基本语法、协程用于异步编程等。
- Android Studio:熟悉Android Studio的项目管理、代码编辑、调试和性能分析工具。
- Gradle:掌握Gradle构建工具,了解其配置和插件使用。
2. Android SDK
- Android四大组件:活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)、内容提供器(Content Provider)
- Activity:包含用户界面的组件,用于和用户交互。理解Activity的生命周期,掌握启动模式和任务栈。Fragment:嵌入在活动中的UI片段,兼顾手机和平板,让界面在平板上更好展示。
- Service:后台服务,不需要和用户交互,但需要长期运行的任务。Android多线程编程 extends Thread、implements Runnable,不允许在子线程进行UI操作,异步消息处理、服务生命周期。服务最佳实践:网络下载。
- BroadcastReceiver:跨进程通信,广播接收器的使用,用于接收系统或应用发出的广播。标准广播(异步)、有序广播(同步)、动态注册(代码)、静态注册(xml)、全局广播、本地广播(解决安全性问题)。广播最佳实践:QQ强制下线。
- ContentProvider:跨程序数据共享(getContentResolver),与运行时权限有关。
3. UI 界面
- 布局:熟悉各种布局方式,如LinearLayout、RelativeLayout、FrameLayout、PercentFrameLayout等。
- 控件:掌握常见控件如Button、TextView、ImageView、ListView、RecyclerView、MediaPlayer、VideoView、WebView、ViewPager等的使用。
- 数据绑定:使用Data Binding和View Binding简化布局和代码的关联。
- MaterialDesign/DesignSupport:ToolBar、DrawerLayout、NavigationView、FloatingActionButton、SnackBar、CoordinatorLayout、CardView、AppBarLayout、SwipeRefreshLayout、CollapsingToolbarLayout
4. IO 网络和文件
- HTTP请求:HttpURLConnection(官方轻量级)、OkHttp(高效)、Volley(关注图片)、Retrofit(复杂请求)、AsyncHttpClient(复杂请求)。
- XML解析:Pull解析、SAX解析。
- JSON解析:JSONObject(官方、功能简单)、GSON(谷歌、默认推荐)、FastJSON(阿里、高性能)、Jackson。
- 持久化存储:文件存储(openFileOutput)、键值存储(SharedPreferences)、关系存储(SQLiteOpenHelper)、ORM框架(LitePal/Room)
5. 服务
- 权限:运行时权限 - "店大欺客",普通权限、危险权限、特殊权限。
- 组件通信:意图(Intent)和Intent Filter,用于组件间通信和启动活动,发送广播。
- 通知:不在前台运行的应用程序,希望向用户发出提示消息。NotificationManager、NotificationCompat.Builder、Notification
- 多线程和异步任务:使用Message/Handler/MessageQueue/Looper、AsyncTask和Kotlin协程处理后台任务。
- LBS基于位置服务:GPS定位、网络定位,百度 LBS SDK、高德 LBS SDK,MapView、BaiduMap
- 内存管理:避免内存泄漏,使用LeakCanary等工具检测。
- 电池优化:Doze模式,减少后台任务,合理使用网络和硬件资源。
6. 项目实战:CoolWeather
- 调用公共API接口:彩云天气、和风天气、高德省市县数据
- 引入第三方类库:LitePal 数据库操作、OkHttp 网络请求、GSON 解析JSON数据、Glide 加载和展示图片
- 版本控制:使用Git进行版本控制和代码回退。
- 应用开发:建库、建表、写接口、写界面。测试接口 - 手动更新天气、切换城市、后天自动更新天气、改App Logo。
- 应用签名:keystore签名、Android Studio 生成 APK文件、Gradle生成APK文件、生成多渠道签名文件
- 应用发布:发布到Google Play、360、豌豆荚、应用宝。申请360开发者账号、发布应用到360市场;
- 嵌入广告:注册腾讯广告联盟账号、接入广告SDK、嵌入开屏广告,Banner、应用墙、插屏、开屏广告。
有关键情节透露