写在前面的话:这一章很有价值,想要提升安卓知识的一定要读一读。不做安卓的也可以得到其它方面的提升。原文地址:http://android.xsoftlab.net/training/custom-views/making-interactive.htmlUI的绘制只是自定义View的一部分。你还需要使View可以以一种接近真实世界的反馈方式来响应用户的输入事件。虚拟世界中的对象应该总是以真实世界中对象的行为方式来行动。比如说,图像不应该从某处突然出现或消失,因为真实世界中的图像总...
上篇博客提到过SQLite。它是嵌入式数据库,因为其轻巧但功能强大,被广泛的用于嵌入式设备其中。后来在智能手机、平板流行之后,它作为文件型数据库,差点儿成为了智能设备单机数据库的必选,能够随着安卓app打包到apk文件其中。SQLite的官方站点是http://www.sqlite.org/,能够随意下载,上面也有详尽的文档能够參考,这篇博客重点关注SQLite在Android开发中怎样使用。在Android开发中。推荐建立一个类继承自SQLiteOpenHelper来创...
前言自定义view能够做出很多不同寻常的效果,圆形菜单交互效果不错,目前网上有两个版本,虽然比较庞大,但非常值得研究与学习。radial-menu-widget: https://code.google.com/p/radial-menu-widget/Radial-Menu-Widget-Android:https://github.com/strider2023/Radial-Menu-Widget-Android这两个版本呢实际上第一个是最原始的作者Jason
Valestin,后来被Arindam
Nath修改后出现了后面的版本。在分析过程中可以逐个击破,关键在于...
昨天在用到ViewPager实现滑动导航的时候发现微信的导航条效果是跟随ViewPager的滑动而动的,刚开始想了一下,感觉可以使用动画实现,但是这个滑动是随手指时时变化的,貌似不可行,后来再网上搜了一下,找到一个开源代码,结果打开一看大吃一惊,这么简单的效果代码居然大概有300多行,太占手机存储空间了!后来自己干脆重写ViewGroup使用scrollTo方法实现了一下,具体实现过程如下:package com.example.slideupdownviewpage;impo...
上篇博客提到过SQLite,它是嵌入式数据库,由于其轻巧但功能强大,被广泛的用于嵌入式设备当中。后来在智能手机、平板流行之后,它作为文件型数据库,几乎成为了智能设备单机数据库的必选,可以随着安卓app打包到apk文件当中。SQLite的官方网站是http://www.sqlite.org/,可以任意下载,上面也有详尽的文档可以参考,这篇博客重点关注SQLite在Android开发中如何使用。在Android开发中,推荐建立一个类继承自SQLiteOpenHelper来创建...
博客源址:Android总结篇系列:Android广播机制1.Android广播机制概述Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器)。广播作为Android组件间的通信方式,可以使用的场景如下:1.同一app内部的同一组件(Component)内的消息通信(单个或多个线程之间);2.同一app内部的不同组件之间的消息通信(单个进程);3.同一app具有多个进程的不同组件之间的消息通信;4....
前言Rxjava,由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。如果还不了解RxJava,请看文章:Android:这是一篇 清晰 & 易懂的Rxjava 入门教程RxJava如此受欢迎的原因,在于其提供了丰富 & 功能强大的操作符,几乎能完成所有的功能需求今天,我将为大家带来 Rxjava创建操作符的常见开发应用场景:联合判断需求 ,希望大家会喜欢。 本系列文章主要基于 Rxjava 2.0接下来的时间,我将持续推...
3、res/layout/目录下的布局文件简介本例中的布局文件是 ADT 默认自动创建的“activity_main.xml”文件。在 Eclipse 中,双击 “activity_main.xml”文件打开。.与在网页中布局中使用 HTML 文件一样,Android 在 XML 文件中使用 XML 元素来设定屏幕布局。每个文件包含整个屏幕或部分屏幕,被编译进一个视图资源,可以被传递 给 Activity.setContentView 或被其他布局文件引用。文件保存在工程的 res/layout/ 目录 下,它被 Android...
原文地址:http://android.xsoftlab.net/training/connect-devices-wirelessly/nsd-wifi-direct.html本阶段的第一节课 Using Network Service Discovery 展示了如何搜索本地网络服务。然而,使用WI-FI P2P搜索服务可以直接搜索附近的设备,而不需要专门通过本地网络。这项特性使得在没有本地网络或者热点的情况下还可以在不同的设备间进行通信。虽然这里的API与NSD的API的目的很相似,但是实现的过程却完全不同。这节课展示了如何通...
博客源址:Android总结篇系列:Android广播机制1.Android广播机制概述Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器)。广播作为Android组件间的通信方式,可以使用的场景如下:1.同一app内部的同一组件(Component)内的消息通信(单个或多个线程之间);2.同一app内部的不同组件之间的消息通信(单个进程);3.同一app具有多个进程的不同组件之间的消息通信;4....
这篇文章是Android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用。1.签名的意义 为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package
Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性(如自动更新不会因为版本不一致而无法安装)。2.签名的步骤 a.创建key b.使用步骤a中产生的key对apk签名3.具体操作 方法一:...
在Echoprint系列--编译中编译了源代码,这次将Echoprint移植到Android平台并測试识别歌曲功能。一、编译库1、环境准备Android NDK,我的是android-ndk-r10e改动源代码,把src中的.cxx的文件重命名为.cpp。把src文件夹重命名为jniBoost源代码。在PC上编译的时候也安装boost的,我的时boost_1_58_0,复制到jni文件夹2、编写编译配置文件打开源代码中的main.cpp,看到核心部分就是codegen_response_t *codegen_file(char* filename, i...
一、问题描述 如何在Android中实现不同应用之间的通讯(既跨进程进行调用)?Android提供了多种实现方式,使我们可以实现跨进程访问Activity、通过ContentProvider跨进程访问其他应用的数据、通过Broadcast可以向android系统中所有应用程序发送广播、使用AIDL实现跨进程的Service。下面我们就使用ContentProvider实现跨进程访问数据,并可对数据进行增、删、改、查二、应用实现 使用ContentProvider实现数据共享,主要是共享...
原文地址:http://developer.android.com/training/displaying-bitmaps/manage-memory.html除了在上一节中描述的步骤之外,还有一些细节上的事情可以促进垃圾回收器的回收及位图的复用。其推荐的策略取决于Android的目标版本。示例APP BitmapFun展示了如何使应用程序在不同的版本上高效的工作。为了给这节课的知识奠定一些基础,下面有一些Android系统如何管理位图内存的一些改进需要了解:在Android 2.2之前,当垃圾回收器回收时,...
一:什么是蓝牙 1:Bluetooth是目前使用最广泛的无线通讯协议,近距离无线通讯的标准。传说瑞典有个国王特别爱吃蓝莓导致自己的牙齿天天都是蓝色的,在他执政期间这位国王非常善于交际,能说会到,和邻国的搞得关系非常好,这个Bluetooth的发明者觉得蓝牙它的作用就是在近距离沟通周围的设备,跟这个国王很类似,于是起名叫蓝牙。 2:主要针对短距离设备通讯(10米) 3:无线耳机,无线鼠标,无线键盘蓝牙标志...