Building Apps with Content

Sharing Simple Data --> Intent && ActionProvider 介绍如何让应用程序共享简单的数据,如:文本/URI/图片等

1. Sending Simple Data to Other Apps

2. Receiving Simple Data from Other Apps

3. Adding an Easy Share Action

Sharing Files 介绍Android中的分享文件

1. Setting Up File Sharing

2. Sharing a File

3. Requesting a Shared File

4. Retrieving File Information

Sharing Files with NFC 使用NFC(Near Field Communication 无线传输)共享文件

1. Sending Files to Another Device

2. Receiving Files from Another Device

Building Apps with Multimedia

Managing Audio Playback 音视频输出硬件/管理音频播放

1. Controlling Your App's Volume and Playback 控制App的音量和播放

2. Managing Audio Focus 控制音频焦点

3. Dealing with Audio Output Hardware 处理音频输出设备

Capturing Photos 控制相机/捕获图片

1. Taking Photos Simply 捕获图片

2. Recording Videos Simply 记录视频

3. Controlling the Camera 控制相机

Printing Content 打印任务/通过打印输出App内容

1. Photos 输出图片

2. HTML Documents 打印输出HTML文档

3. Custom Documents 打印输出自定义文档

Building Apps with Graphics & Animation

Displaying Bitmaps Efficiently

1. Loading Large Bitmaps Efficiently 高效载入大图

2. Processing Bitmaps Off the UI Thread 在子线程处理图片

3. Caching Bitmaps 缓存图片

4. Managing Bitmap Memory 管理图片内存

5. Displaying Bitmaps in Your UI 在UI线程(主线程)显示图片

Displaying Graphics with OpenGL ES 使用OpenGL ES展示图形

1. Building an OpenGL ES Environment 构建OpenGL ES环境

2. Defining Shapes 定义形状

3. Drawing Shapes 绘制形状

4. Applying Projection an Camera Views

5. Adding Motion

6. Responding to Touch Events 响应触摸事件

Adding Animations

1. Crossfading Two Views 交替变换两个View

2. Using ViewPager for Screen Slide 使用ViewPager做出屏幕滑动效果

3. Displaying Card Flip Animations 展示卡片滑动动画

4. Zooming a View 缩放View

5. Animating Layout Changes

参考:http://blog.csdn.net/chivalrousman/article/details/52003583

Building Apps with Connectivity & the Cloud

Connecting Devices Wirelessly

1. Using Network Services Discovery 发现网络服务

2. Creating P2P Connections with Wi-Fi 使用WIFI创建P2P连接

3. Using Wi-Fi P2P for Service Discovery 使用WIFI-P2P服务

Performing Network Operations

1. Connecting to the Network 连接网络

2. Managing Network Usage 管理网络连接

3. Parsing XML Data 解析XML数据

Transferring Data Without Draining(耗尽) the Battery

1. Optimizing Downloads for Efficient Network Access

2. Minimizing the Effect of Regular Updates

3. Redundant Downloads are Redundant

4. Modifying Patterns Based on the Connectivity Type

Syncing to the Cloud

1. Using the Backup API

2. Making the Most of Google Cloud Messaging

Resolving Cloud Save Conflicts

Transferring Data Using Sync Adapters

1. Creating a Stub Authenticator

2. Creating a Stub Content Provider

3. Creating a Sync Adapter

4. Running a Sync Adapter

Transmitting Network Data Using Volley 使用Volley执行网络任务

1. Sending a Simple Request

2. Setting Up a RequestQueue

3. Making a Standard Request

4. Implementing a Custom Request

参考:http://blog.csdn.net/chivalrousman/article/details/51975583

Building Apps with User Info & Location

Accessing Contacts Data 获取手机联系人信息

1. Retrieving a List of Contacts

2. Retrieving Details for a Contact

3. Modifying Contacts Using Intents

4. Displaying the Quick Contact Badge

Making Your App Location-Aware 解析设备的位置信息

1. Retrieving the Current Location

2. Receiving Location Updates

3. Displaying a Location Address

4. Creating and Monitoring Geofences

5. Recognizing the User's Current Activity

6. Testing Using Mock Locations

Best Practices for Interaction & Engagement 人机交互实践

Designing Effective Navigation

1. Planning Screens and Their RelationShips

2. Planning for Multiple Touchscreen Sizes

3. Providing Descendant and Lateral Navigation

4. Providing Ancestral and Temporal Navigation

5. Putting it All Together: Wireframing the Example App

Implementing Effective Navigation

1. Creating Swipe Views with Tabs

2. Creating a Navigation Drawer

3. Providing Up Navigation

4. Providing Proper Back Navigation

5. Implementing Descendant Navigation

Notifying the User

1. Building a Notification

2. Preserving Navigation when Starting an Activity

3. Updating Notifications

4. Using Big View Styles

5. Displaying Progress in a Notification

Adding Search Functionality

1. Setting up the Search Interface

2. Storing and Searching for Data

3. Remaining Backward Compatible

Making Your App Content Searchable by Google

1. Enabling Deep Links for App Content

2. Specifying App Content for Indexing

Best Practices for User Interface 用户界面设计

Designing for Multiple Screens

1. Supporting Different Screen Sizes

2. Supporting Different Densities

3. Implementing Adaptive UI Flows

Creating Custom Views

1. Creating a Custom View Class

2. Implementing Custom Drawing

3. Making the View Interactive

4. Optimizing the View

Creating Backward-Compatible UIs

1. Abstracting the New APIs

2. Proxying to the New APIs

3. Creating an Implementation with Older APIs

4. Using the Version-Aware Component

Implementing Accessibility

1. Developing Accessible Applications

2. Developing Accessibility Services

Managing the System UI

1. Dimming the System Bars

2. Hiding the Status Bar

3. Hiding the Navigation Bar

4. Using Immersive Full-Screen Mode

5. Responding to UI Visibility Changes

Best Practices for User Input

Using Touch Gestures

1. Detecting Common Gesture

2. Tracking Movement

3. Animating a Scroll Gesture

4. Handling Multi-Touch Gestures

5. Dragging and Scaling

6. Managing Touch Events in a ViewGroup

Handling Keyboard Input

1. Specifying the Input Method Type

2. Handling Input Method Visibility

3. Supporting Keyboard Navigation

4. Handling Keyboard Actions

Supporting Game Controllers

1. Handling Controller Actions

2. Supporting Controllers Across Android Versions

3. Supporting Multiple Game Controllers

Best Practices for Background Jobs

Runnning in a Background Service

1. Creating a Background Service

2. Sending Work Requests to the Background Service

3. Reporting Work Status

Loading Data in the Background

1. Running a Query with a CursorLoader

2. Handling the Results

Managing Device Awake State

1. Keeping the Device Awake

2. Scheduling Repeating Alarms

Best Practices for Background Jobs

Managing Your App's Memory

Performance Tips

Improving Layout Performance

1. Optimizing Layout Hierarchies

2. Re-using Layouts with <include/>

3. Loading Views On Demand

4. Making ListView Scrolling Smooth

Sending Operations to Multiple Threads

1. Specifying the Code to Run on a Thread

2. Creating a Manager for Multiple Threads

3. Running Code on a Thread Pool Thread

4. Communicating with the UI Thread

Keeping Your App Responsive

JNI Tips

SMP Primer for Android

Best Practices for Security & Privacy

Security Tips

Security with HTTPS and SSL

Updating Your Security Provider to Protect Against SSL Exploits

Developing for Enterprise

Best Practices for Testing

Testing Your Activity

Setting Up Your Test Environment

Creating and Running a Test Case

Testing UI Components

Creating Unit Tests

Creating Functional Tests

Android Training的更多相关文章

  1. Android Training精要(六)如何防止Bitmap对象出现OOM

    1.使用AsyncTask異步加載bitmap圖片避免OOM: class BitmapWorkerTask extends AsyncTask<Integer, Void, Bitmap> ...

  2. 【Android Training UI】创建自定义Views(Lesson 0 - 章节概览)

    发表在我的独立网站http://kesenhoo.github.io/blog/2013/06/30/android-training-ui-creating-custom-views-lesson- ...

  3. 【Android Training UI】创建自定义Views(Lesson 2 - 自定义Drawing)

    发布在我的网站:http://kesenhoo.github.io/blog/2013/06/30/android-training-ui-creating-custom-views-lesson-2 ...

  4. 【Android Training - UserInfo】记住登入用户的信息[Lesson 1 - 使用AccountManager来记住用户]

    Remembering Your User[记住你的用户] 每一个人都非常喜欢自己的名字能被人记住.当中最简单,最有效的使得你的app让人喜欢的方法是记住你的用户是谁,特别是当用户升级到一台新的设备或 ...

  5. Android Training Caching Bitmaps 翻译

    原文:http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html 图片缓存 在Android开发中,加载一个图 ...

  6. Android训练课程(Android Training) - 使用Volley传输网络数据(Transmitting Network Data Using Volley)

    使用Volley传输网络数据(Transmitting Network Data Using Volley) Volley 是一个 HTTP 库,它使得在Android应用程序中操作网络更容易,是重要 ...

  7. Android训练课程(Android Training) - 添加活动栏(使用action bar)

    2014-10-28 张云飞VIR 翻译自:https://developer.android.com/training/basics/actionbar/index.html 添加活动栏(Addin ...

  8. Android训练课程(Android Training) - 构建你的第一个应用

    本文翻译自:https://developer.android.com/training/basics/firstapp/index.html 构建你的第一个应用(app) 欢迎来到安卓开发! 这个课 ...

  9. Android Training - 管理应用的内存

    http://hukai.me/android-training-managing_your_app_memory/ Random Access Memory(RAM)在任何软件开发环境中都是一个很宝 ...

  10. [Android Training视频系列] 8.2 Managing Audio Focus

    视频讲解:http://www.eyeandroid.com/thread-15896-1-1.html 由于很多应用程序都可以播放音频,因此在播放前考虑它们如何交互就显得很重要了,为了避免同时出现多 ...

随机推荐

  1. Nginx开启gzip压缩解决react打包文件过大

    用create-react-app创建的react应用打包之后的build js有1M之多. 采用gzip打包传输,可以节约70%左右的带宽 nginx采用gzip打包方式 在nginx配置中添加如下 ...

  2. Docker-----常见问题

    docker中删除dead状态的容器 其现象如下:docker ps -a docker rm ytn删除时报错如下:解决方法: 先查出其进程,kill掉,在进行删除 查 ,复制上图白底部分,用以下命 ...

  3. CF1153D Serval and Rooted Tree

    题目地址:CF1153D Serval and Rooted Tree 挺好玩儿也挺考思维的一道题 思路:树形DP+贪心 数组 \(d\) 维护这样一个值: 对于一个节点 \(x\) ,它的值最大可以 ...

  4. Idea中一些常用设置

    idea展开和折叠方法的快捷键 Ctrl+”+/-”,当前方法展开.折叠Ctrl+Shift+”+/-”,全部展开.折叠 idea中也有自定代码块的功能 //region 描述.....业务代码//e ...

  5. curl常用命令备忘

    #####(输出请求头信息) curl -I xxx-Pro:test xxx$ curl -I https://www.baidu.com/ HTTP/1.1 200 OK Accept-Range ...

  6. 依赖背包——cf855C好题

    比较裸的依赖背包,但是想状态还是想了好久 转移时由于边界问题,虽然可以倒序转移,但当容量为0|1的时候,由于有初始值的存在 很难再原dp数组上进行修改,所以额外用tmp数组来保存修改后的值 #incl ...

  7. poj1456 Supermarket 贪心+并查集

    题目链接:http://poj.org/problem?id=1456 题意:有n个物品(0 <= n <= 10000) ,每个物品有一个价格pi和一个保质期di (1 <= pi ...

  8. bzoj 2599

    还是点对之间的问题,果断上点分治 同样,把一条路径拆分成经过根节点的两条路径,对不经过根节点的路径递归处理 然后,我们逐个枚举根节点的子树,计算出子树中某一点到根节点的距离,然后在之前已经处理过的点中 ...

  9. MySQL慢查询日志汇总

    概念: MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中.lo ...

  10. SpringCloud使用Feign调用其他客户端带参数的接口,传入参数为null或报错status 405 reading IndexService#del(Integer);

    SpringCloud使用Feign调用其他客户端带参数的接口,传入参数为null或报错status 405 reading IndexService#del(Integer); 第一种方法: 如果你 ...