Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏

部分 IX. Android

目录

110. Android Studio
110.1. 卸载 Android Studio
110.2. 代码格式化
110.3. 设置兼容最低SDK版本
110.4. SDK Tools
110.4.1. 接受 License
110.4.2. 查看 SDK 列表
110.4.3. 按照 Android SDK
110.5. 命令行操作
110.6. adb 命令
110.6.1. 获得 root 权限
110.6.2. 设备管理
110.6.3. Shell
110.6.4. 设备 ID
110.6.5. 查看安卓版本
110.6.6. Logcat
110.6.7. 上传文件
110.6.8. 下载文件
110.6.9. 安卓 .apk bk
110.6.10. 屏幕尺寸
110.6.11. dump 系统信息
110.6.12. 解锁
110.6.13. 蓝牙管理
111. AndroidManifest.xml
111.1. SDK 版本配置
111.2. 开启网络
111.3. 文件存储权限
111.4. 相机权限
111.5. GPS 定位权限
111.6. 全屏-无标题
111.7. 设置为默认开机启动
111.8. 开机启动
111.9. 默认横屏
111.10. 禁止屏幕旋转变化
112. 设备
112.1. 环境变量
112.1.1. 扩展存储
112.1.2. 下载缓存目录
112.1.3. 数据目录
112.2. 配置文件
112.2.1. *.properties 文件
112.2.2. 再 AndroidManifest.xml 使用 meta-data element 定义
112.2.3. 再 build.gradle 文件中配置 productFlavors
112.2.4. 从 assets 目录读取配置文件
112.3. 设备信息
112.4. Physical density
112.5. 声卡
112.5.1. 播放
112.5.2. 录音
112.5.3. 查看声卡信息
112.5.4. /proc/asound 设备信息
112.5.5. 查看声卡当前占用设备
112.5.6. tinymix 设置声卡参数
112.5.7. 麦克风阵列调试
113. Activity
113.1. 定义 UI
113.2. 隐藏虚拟键
113.3. 显式四种跳转方式
113.3.1. startActivity()
113.4. 定时关闭
113.5. 恢复触发
113.6. 返回触发
113.7. 保持屏幕常开
113.8. 标题栏添加返回按钮
113.9. Activity 间数据传递
113.9.1. Intent 方式
113.9.2. Bundle 方式
113.9.3. Flag 属性
113.9.4. 返回值
113.10. intentActivityResultLauncher 跳转
113.11. startActivityForResult 替代方案
113.11.1. 返回值
113.12. Activity 关闭
113.12.1. 退出 App
113.13. App 间跳转
113.14. Res 资源
113.14.1. 通过名称查找 layout ID
113.14.2. 查找 drawable 资源 ID
113.14.3. 获取 color 颜色 ID
113.14.4. 获取 array.xml 文件下某个字段的 ID
113.14.5. 获取 style.xml 文件下的某个样式的 id
114. Fragment
114.1. 启动 Fragment
114.2. 关闭 Fragment
114.3. 在 Fragment 中使用 findViewById
114.4. 在 Fragment 中使用 Intent 跳转
114.5. Fragment 中调用 getPackageManager()
114.6. 在 Fragment 中使用 runOnUiThread
114.7. Fragment 中调用 findViewById
114.8. 替换 FrameLayout
114.9. Fragment 接收 BroadcastReceiver 广播
115. Resources
115.1. strings.xml
115.1.1.
115.1.2.
115.1.3. 获取 Resource
116. Palette 视觉设计
116.1. 父容器定位
116.2. 样式布局
116.2.1. 对齐布局
116.2.2. LinearLayout
116.2.3. FrameLayout
116.2.4. 动画
116.2.5. 声音波形图
116.3. Widgets
116.3.1. ImageView
116.3.2. TextClock
116.3.3. 进度条
116.4. Containers
116.4.1. CardView
116.5. Legacy
116.5.1. GardView
116.5.2. GridView
116.6. 渐变背景色
116.7. 屏幕
116.7.1. 尺寸
116.7.2. 屏幕触摸事件 onTouch(View view, MotionEvent motionEvent)
116.7.3. 手势事件
118. Schedule 计划任务
118.1. 延迟执行
118.2. Time 和 TimerTask 定时刷新
118.3. 使用 Runnable 和 Handler 实现定时执行
118.4. 循环执行
118.5. TimerTask 实现循环播放
118.6. TimerTask 更新 UI
119. Internationalization i18n with Android (国际化)
119.1. 创建国际化文件
119.2. strings.xml 文件
119.3. 翻译语言
119.4. 引用国际化文件
119.5. 切换语言
120. 存储
120.1. 存储目录
120.2. SharedPreferences
120.2.1. 操作模式
120.2.2. 保存数据
120.2.3. 读取数据
120.2.4. 通过 key 查询数据是否存在
120.2.5. 删除数据
120.2.6. 清空数据
120.2.7. 对象存储
120.2.8. SharedPreferences 读取物理存储文件
120.3. SD Card
120.3.1. SD Card 状态
120.3.2. Android 11 申请 sdcard 权限
121. 网络
121.1. Wifi 配置
121.2. OkHttp - An HTTP & HTTP/2 client for Android and Java applications
121.2.1. Gradle
121.2.2. AndroidManifest.xml 开启网络访问权限
121.2.3. okhttp 默认是 HTTPS 开启 HTTP
121.2.4. GET
121.2.5. POST
121.2.6. HTTP PUT 请求
121.2.7. http header 相关设置
121.2.8. HTTP Base Auth
121.2.9. HttpUrl.Builder 组装 URL 地址参数
121.2.10. Android Activity Example
121.2.11. Android Oauth2 + Jwt example
121.2.12. HTTP/2
121.2.13. 异步更新 UI
121.2.14. WebSocket Client
122. 相机与相册
122.1. manifest 文件
122.2. layout
122.3. Activity
122.4. LED flash 做手电筒
123. 麦克风与录音
123.1. 开启麦克风和SD卡权限
123.2. layout
123.3. Activity
124. 多媒体开发
124.1. MediaPlayer
124.1.1. 播放Raw下的元数据
124.1.2. 播放assets文件夹中的音乐
124.1.3. 播放互联网音乐
124.1.4. 使用单例模式
124.1.5. 设置速度,快进播放
124.2. VideoView 开发
124.2.1. 播放网络视频
124.2.2. MediaController 添加翻页事件
124.2.3. 静音播放视频
124.2.4. 更新进度条
124.2.5. 完整的例子
124.2.6. 循环播放
124.2.7. 静音播放
124.3. SoundPool
124.4. 音量控制
124.5. SurfaceView
124.6. Vitamio
125. 定位
125.1. GPS + 网络 定位
125.1.1. manifest 权限配置
125.1.2. layout
125.1.3. Activity
125.2. 只从 GPS 获取定位
126. 电话
126.1. SIM 卡状态
126.2. 通信录与拨打电话
126.3. 发送短信
127. 消息广播
127.1. 动态注册
127.2. 静态注册
127.2.1. 电源管理
127.2.2. 接收不到消息
127.3. 自定义用户消息广播
127.4. 本地广播
127.5. 动态监听广播
127.6. 广播重复接收
127.7. 指定静态广播接收者
127.8. 异步执行广播
128. Service 服务
128.1. Service的基本用法
128.1.1. manifest 文件
128.1.2. 创建 Service
128.1.3. Layout 代码
128.1.4. Activity 代码
128.2. Service 中启动线程
128.3. Service 和 Activity 通信
128.3.1. Layout
128.3.2. Service
128.3.3. Activity
128.4. Service 和 Toast
128.5. Service 中启动 Activity
128.6. Service 中更新 UI
129. Notification 通知中心
129.1. 文本通知
129.2. 添加点击操作
130. NFC (Near field communication)
130.1. AndroidManifest.xml 文件配置
130.2. Loyout 文件
130.3. Activity 文件
131. 图形开发
131.1. Paint
131.2. AnimationDrawable
132. 下载管理
132.1. 从 URL 下来文件
132.2. 安装 APK
132.3. 下载后接收广播通知
133. Android 多线程
133.1. GPIO
134. EventBus
134.1. 添加 EventBus 依赖到项目Gradle文件
134.2. 快速开始一个演示例子
134.2.1. 创建 MessageEvent 类
134.2.2. Layout
134.2.3. Activity
134.3. Sticky Events
134.3.1. MainActivity
134.3.2. StickyActivity
134.3.3. MessageEvent
134.3.4. 删除粘性事件
134.4. 线程模型
134.5. 配置 EventBus
134.6. 事件优先级
134.7. 捕获异常事件
135. Android MQTT
135.1. build.gradle 添加依赖包
135.2. AndroidManifest.xml
135.3. Android Mqtt v5 例子
136. 安卓开发版
136.1. rk3568
136.1.1. 声卡
137. 杂项
137.1. Sleep
137.2. Caused by: java.net.UnknownServiceException: CLEARTEXT communication to 47.100.253.187 not permitted by network security policy
137.3. 设计模式
137.3.1. 单例模式
137.4. Android OS 包
137.4.1. 进程ID
137.4.2. handler
137.5. fastjson android
137.5.1. 对象转字符串
137.5.2. JsonObject 转对象
137.5.3. 字符串 与 json 互转
137.5.4. json 转 数组
137.5.5. JSON数组转List
137.5.6. Map 与 Json 互转
137.6. Butter Knife
137.7. Android Things
137.7.1. GPIO
138. FAQ
138.1. java.net.UnknownServiceException: CLEARTEXT communication to 192.168.0.185 not permitted by network security policy
138.2. Caused by: android.os.NetworkOnMainThreadException
138.3. java.lang.IllegalStateException: Player is accessed on the wrong thread.
138.4. Manifest merger failed with multiple errors, see logs
138.5. 从 Android API 30 废弃 setSystemUiVisibility(uiOptions)
139. 讯飞云
139.1. AIUI
139.1.1. AIUIPlayer
139.1.2. 酷我音乐
139.1.3. 控制技能
139.1.4. 唤醒词
139.1.5. 汉字转拼音
139.2. 讯飞 TTS
139.2.1. 设置日志输出级别
139.2.2. 流式语音合成
139.3. 语音唤醒
139.3.1. 范例