把手图文并茂教你发布Android开源库
Android创建和使用数据库详细指南
Android创建和使用数据库详细指南(1)摘要:每个应用程序都要使用数据,Android应用程序也不例外,Android使用开源的、与操作系统无关的SQL数据库--SQLite,本文介绍的就是如何为你的Android应用程序创建和操作SQLite数据库。
数据库支持每个应用程序无论大小的生命线,除非你的应用程序只处理简单的数据,那么就需要一个数据库系统存储你的结构化数据,Android使用SQLite数据库,它是一个开源的、支持多操作系统的SQL数据库,在许多领域广泛使用,如Mozilla FireFox就是使用SQLite 来存储配置数据的,iPhone也是使用SQLite来存储数据的。
在Android中,你为某个应用程序创建的数据库,只有它可以访问,其它应用程序是不能访问的,数据库位于Android设备/data/data//databases文件夹中,在这篇文章中,你将会学习到如何在Android中创建和使用数据库。
1SQLite数据库使用Eclipse创建一个Android项目,取名为Database,如图1所示:图1 数据库-使用Eclipse创建你的Android新项目2创建DBAdapter辅助类接下来创建一个数据库,取名为bookstitles,字段如图2所示。
图2 数据库字段在DBAdapter.java文件中,定义清单1中的常量。
清单1 定义DBAdapter.java文件中的常量package net.learn2develop.Database;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.SQLException;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.util.Log;public class DBAdapter{public static final String KEY_ROWID = "_id";public static final String KEY_ISBN = "isbn";public static final String KEY_TITLE = "title";public static final String KEY_PUBLISHER = "publisher";private static final String TAG = "DBAdapter";private static final String DATABASE_NAME = "books";private static final String DATABASE_TABLE = "titles";private static final int DATABASE_VERSION =1;private static final String DATABASE_CREATE ="create table titles (_id integer primary key autoincrement, "+ "isbn text not null, title text not null, "+ "publisher text not null);";private final Context context;}DATABASE_CREATE常量包括创建titles表的SQL语句。
android开发学习的10个重点开源项目(杰瑞教育整理)
android开发学习的10个重点开源项目Android开发学习究竟要从哪里开始?Android开发学习应该学习哪些重点开源项目,是目前android开发学习者最关心的问题。
针对这些问题,烟台杰瑞教育高级Android讲师高老师介绍,在android开发学习中,学习开源代码是掌握技术的一个最佳方式。
同时,开源代码的阅读数量也是企业面试的重点关注问题。
代码阅读的多少,直接体现了你Android开发的学习程度。
这些项目不仅提供了优秀的创意,也可以直接掌握 Android 内核的接口使用。
下面是杰瑞教育经常推荐的一些应用开源项目,这些项目不仅提供了优秀的创意,也可以直接掌握Android内核的接口使用,大家一起看看吧~1.Android团队提供的示例项目如果不是从学习Android SDK中提供的那些样例代码开始,可能没有更好的方法来掌握在Android这个框架上开发。
由Android的核心开发团队提供了15个优秀的示例项目,包含了游戏、图像处理、时间显示、开始菜单快捷方式等。
2.Remote DroidRemoteDroid是一个Android应用,能够让用户使用自己的无线网络使用无线键盘、触摸屏操作手机。
这个项目为开发者提供了如网络连接、触摸屏手指运动等很好的样例。
3.TorProxy和ShadowTorProxy应用实现了Android手机无线电电传通讯(TOR),和Shadow应用一起使用,可以使用手机匿名上网。
从该项目源代码中,可以掌握socket连接、管理cookie等方法。
4、 Android SMSPopupSMSPopup可以截获短信内容显示在一个泡泡形状的窗口中。
从这个项目中可以掌握到如何使用内置的短信SMS接口。
5、 Standup TimerStandup Timer应用用于控制站立会议时间,类似秒表倒计时,可以提醒每个人的讲话时间已到,从而保证每个与会者使用时间一样。
从该项目的代码中,可以学会如何使用时间函数。
android 开发原理
android 开发原理
Android 开发原理涉及以下方面:
1. Android 操作系统架构:Android 是基于 Linux 内核的开源移动
操作系统,它包含了多种层次的模块,如 Linux 内核层、硬件抽象层、
原生库、应用框架层和应用层。
每一层有不同的功能和职责,共同组成了
完整的 Android 系统。
2. Android 应用开发框架:Android 应用开发使用 Java 语言编写,开发者可以利用 Android SDK 中提供的应用程序接口(APIs)来操作手
机硬件和系统资源。
Android 应用开发框架主要包括三个重要的组件:Activity、Service 和 BroadcastReceiver。
3. Android 软件开发工具:Android Studio 是官方提供的 Android 开发工具,它包含了 Android SDK、模拟器、调试器和其他开发工具,是
开发 Android 应用的必备工具。
4. Android 应用发布:Android 应用发布需要遵守 Google Play Store 的规则和标准,包括应用的内容、安全性、隐私保护等。
开发者需
要进行应用打包、签名、上传和发布等一系列操作,并需要通过 Google Play Store 的审核才能上架应用。
总体来说,Android 开发原理体现了一个完整的软件开发过程,包括
操作系统的架构设计、应用开发框架的设计和实现、软件开发工具的使用
和应用发布等方面。
python 开发安卓应用的方法
python 开发安卓应用的方法
Python 本身并不直接支持开发安卓应用,但你可以使用一些工具和框架来实现这个目标。
以下是两种常用的方法:
1. Kivy:Kivy 是一个开源的Python 库,用于开发多触摸应用。
它可以在多个平台上运行,包括Android 和iOS。
Kivy 提供了一套完整的API,可以用来创建各种界面元素,如按钮、文本框、滑块等。
你还可以使用Python 的其他库来扩展Kivy 的功能。
2. BeeWare:BeeWare 是一个用于开发、测试和发布软件的集合。
它包括一个Python 绑定的Android 应用框架,可以让你使用Python 开发安卓应用。
BeeWare 的目标是让你可以用Python 完成所有事情,包括UI 设计和交互。
这两种方法都有各自的优点和缺点。
Kivy 是一个成熟的库,有大量的文档和社区支持,但它的界面不是用传统的Android XML 描述的,而是用Python 代码定义的。
BeeWare 的目标是让你可以用Python 完成所有事情,但它目前还在发展中,文档和社区支持可能不如Kivy。
无论你选择哪种方法,都需要一些额外的步骤来将你的应用打包成APK 文件,以便在Android 设备上运行。
这些步骤可能包括配置Java 环境,配置Android SDK,使用Gradle 或Aapt 等工具来打包应用等。
需要注意的是,虽然这些方法都可以让你用Python 开发安卓应用,但它们的性能可能不如使用原生开发(如Java 或Kotlin)高。
如果你需要开发高性能的应用,可能需要考虑使用原生开发。
Android应用开发入门发布流程步骤
Android应用开发入门发布流程步骤随着移动互联网的快速发展,Android应用的开发与发布成为了一个备受关注的话题。
本文将详细介绍Android应用开发的入门发布流程步骤,以帮助初学者顺利进入这个领域。
一、开发前准备在进行Android应用开发之前,我们需要进行一些准备工作。
1. 获取开发工具首先,你需要下载并安装Android Studio,这是Android开发的官方IDE。
Android Studio集成了开发所需的各种工具和资源,同时也提供了一个方便的开发环境。
2. 学习Java编程语言作为Android应用开发的基础,你需要熟悉Java编程语言。
Java是一种面向对象的编程语言,对于理解Android应用开发的概念和原理非常重要。
3. 学习Android开发框架掌握Android开发框架,包括常用的API和组件,是进行Android 应用开发的基础。
你可以通过阅读官方文档或参加培训课程来学习Android开发框架。
二、应用开发一旦你完成了准备工作,就可以开始进行Android应用的开发了。
1. 创建项目在Android Studio中,你可以通过选择"New Project"来创建一个新的Android项目。
在项目创建过程中,你需要设置应用的名称、包名、最低支持的Android版本等。
2. 设计界面Android应用的界面设计使用XML布局文件进行描述,你可以根据应用的需求添加按钮、文本框、图像等组件,通过设置属性来控制它们的外观和行为。
3. 添加功能在应用的开发过程中,你可以根据需求添加各种功能,包括数据库操作、网络请求、权限管理等。
通过使用Java编程语言和Android开发框架提供的API,你可以轻松地实现这些功能。
4. 调试和测试在开发过程中,你需要经常进行调试和测试,以确保应用的正常运行。
Android Studio提供了丰富的调试工具,你可以使用它们来查找和修复代码中的错误。
如何进行Android应用的版本管理和发布
如何进行Android应用的版本管理和发布随着移动互联网的迅速发展,Android应用的数量不断增加,对于开发者来说,如何进行版本管理和发布是一个非常重要的问题。
本文将从几个方面探讨如何进行Android应用的版本管理和发布,帮助开发者更好地管理和发布自己的应用。
一、版本管理版本管理是指管理应用在不同阶段和不同版本的开发、测试和发布过程。
下面是一些可以帮助开发者有效进行版本管理的建议。
1. 使用版本控制工具版本控制工具是版本管理的基础,通过版本控制工具可以方便地管理应用的源代码和各个版本的变更。
常见的版本控制工具有Git、SVN等,开发者可以根据自己的需求选择合适的工具进行使用。
2. 使用分支管理分支管理是版本控制中非常重要的概念,通过使用分支可以实现不同版本之间的独立开发和管理。
开发者可以在主分支上进行稳定版本的发布,同时在其他分支上进行新功能的开发和测试,确保不同版本之间的隔离和稳定性。
3. 建立版本发布计划在开发过程中,建立一个明确的版本发布计划非常重要。
版本发布计划可以帮助开发者合理安排开发和测试的时间,确保版本的质量和稳定性。
同时,开发者还可以通过版本发布计划和用户进行沟通,提前发布版本的消息,提高用户参与度和反馈的机会。
二、发布流程除了版本管理,发布流程也是进行Android应用发布的重要环节。
下面是一些可以帮助开发者顺利进行应用发布的建议。
1. 测试和调试在进行应用发布之前,开发者应该进行充分的测试和调试工作。
通过测试可以发现和修复应用中的BUG,确保应用的质量和稳定性。
同时,开发者还可以使用一些自动化测试工具来加快测试和提高测试的覆盖率。
2. 应用签名在进行应用发布之前,开发者需要对应用进行签名,以保证应用的安全性和防止被篡改。
在Android开发中,应用签名是使用密钥库对应用进行签名,开发者可以根据Android官方文档进行签名的具体操作。
3. 应用市场发布在准备好应用之后,开发者可以选择将应用发布到应用市场。
Android应用发布流程
Android应用发布流程首先,要发布Android程序至Android Market,必须先支付一笔25块美金的注册费,以下步骤为说明如何注册Android Market Account、sign(签署)应用程序,并发布应用程序至Market的过程。
一、注册Android进入https:///publish/signup网站,注册或输入已有的Google 帐号登入。
二、发布前先要向Google付费按Continue继续信用卡付费,输入信用卡卡号与帐单地址,确认金额无误之后,按下“立即下单”,付费完成,回到开发者网页。
三、必须签署APK程序直接上传程序,会提示上传失败,导出未签署的APK程序,系统提示发布至market 前必需签署应用程序。
四、建立keystore主要有两种签名方式:命令行方式或ADT插件方式1.命令行方式:通过Keytool去产生私有密钥。
Keytool在JDK/bin目录里(比如D:\Program Files\Java\jdk1.6.0_30\bin)。
Keytool参数描述-genkey 生成公钥和私钥-v 输出详细信息-keystore <keystore-name>.keystore 生成的keystore文件名-alias <alias name> 此密钥的别名。
只保留前8位字符-keyalg <alg> 加密算法。
支持DSA和RSA-dname <name> 用于描述此密钥的创建者信息。
如果没有提供,Jarsigner会提示你输入这些信息-validity <valdays> 密钥有效期,按天数。
例如:D:\Program Files\Java\jdk1.6.0_30\bin>keytool -genkey -v -keystore myView.keystore -alias myView.keystore -keyalg RSA -validity 20000然后签名:Eclipse中,右击需要签名的工程-->android tools-->export signed application package,出现对话框,选择需要签名的工程,点击next,选择上面生成的myView.keystore 的文件位置和设置的密码。
Anroid源码入门
Anroid源码入门因为项目的原因,本文以android-x86-1.6源码为目标讲解。
如果是android源码或者android-x86其它版本的源码,某些模块和本文会有差异,但是整体结构上(目前)是一致的。
一,获得Android源码二,初始Android源码Android-x86-1.6(下面以android简称)的源码顶层目录如下:bionic bootable build dalvik development external frameworks hardware Makefile packages prebuilt system vendorBionic: b ionic本意是仿生学的意思。
在Android中,bionic目录存放的是基本的C库的源码。
Bionic库是Google为Android开发的c库,作为glibc的替代品,相对于glibc,bionic有3优势:License: glibc使用的是LGPL,而bionic使用的BSDAndoird的源码大多采用了ASL和BSD,至于为什么没有采用GPL,可以参考下面的文章。
</2010/02/为什么android不是gpl许可证?/>大小:显然bionic要小,毕竟android是正对嵌入式平台,flash可不像硬盘动辄几百G。
运行速度:同样,Arm CPU的运行速度对这种底层的C库提出了更高的要求。
而且作为专门针对android开发的底层库,google可以在bionic 中内建某些android特性的支持。
总的来说,bionic相对于glic更轻量级,更适合android,且没有传染性。
这个目录在我们的开发只能算个路人,一般不会去修改里面的代码,甚至都不需要去打开他。
Build:Build目录存放的是build android源码过程中需要用到的各种脚本和工具。
这个目录对我们来说还是比较的重要的,虽然不一定会经常修改里面的代码,但是里面的Makefile对于弄清楚android的编译流程是很有帮助的。
Ubentu编译Android源码(AOSP)
Ubentu编译Android源码(AOSP)前⾔:⼀直想要编译⼀下Android 源码,之前去google 看,下载要下载repo。
当时很懵逼,repo 是个什么?(repo 是⼀个python 脚本,因为Android 源码git 仓库太多,帮助管理git 仓库的,你不需要知道⾥⾯什么实现。
会⽤就⾏。
)然后往下看,看到⽹上说,编译Android AOSP 只能⽤Ubuntu,当时⾃⼰的⼼也哇哇凉啊。
⾃⼰只有⼀个⼯作的电脑,⾃⼰的电脑配置太低。
看⽹上说,还要200G 的空间。
(有⼀个拦路虎)之前⾃⼰给⾃⼰的windos 安装过双系统,但是好像⼀直启动不了。
现在想想,应该是因为当时没有设置引导盘的顺序吧。
现在我⽤⼀个usb 连接了⼀个1T的硬盘,⾥⾯安装了Ubentu . 如果我插了这个硬盘,启动的就是ubuntu, 如果没有,就是⼯作的windows 。
⼯作学习两不误。
不知道什么动⼒让我突破了所有上⾯的拦路虎,依然决然去编译源码。
⾯试的时候,别⼈提到过,我说我想,但是没有做到,别⼈说,那么你为了编译源码,你第⼀步应该怎么做? 我说⾸先下载源码,安装Ubuntu。
终于⼀步⼀步⾛过来了。
感谢⾯试的那个⼈给我指点,让我思考。
⼀路⾛来,少些艰⾟。
下载代码⽤了两天,还是下载的清华镜像的,公司的⽹太慢了,43G 下载了两天,然后正好周末,编译成功花费了两天周末时间,但是还是很值得的。
⾥⾯有很多坑,给⼤家分享下。
下载AOSP:google 的AOSP 的话,因为FQ和数据量太⼤,考虑国内的镜像。
这个⽹址是清华⼤学的镜像站。
由于⾸次同步需要下载约 30GB 数据,过程中任何⽹络故障都可能造成同步失败,我们强烈建议您使⽤初始化包进⾏初始化。
也就是我们直接下载⼀个git仓库。
这样的话,不会说,⽂件太⼤,git clone 的时候⽼是中断。
下载下载完成后记得根据 checksum.txt 的内容校验⼀下。
当时我是⽤Windows 迅雷下载的⽂件。
android源码编译流程
android源码编译流程Android系统源代码是开源的,任何有兴趣的人都可以下载、阅读和修改它。
但是,为了保证该系统在各种硬件上的流畅运行,需要对Android源码进行编译。
以下是Android源码编译的流程:1. 安装编译环境编译Android源码需要安装一些必要的工具。
首先需要安装JDK(Java Development Kit),其次需要安装Android SDK(Software Development Kit)和NDK(Native Development Kit)。
此外,还需要安装Git和Repo工具,用于获取和同步源代码。
2. 下载源代码在安装好编译环境之后,需要从官方网站下载Android源代码。
这个过程可能需要一段时间,并且需要高速稳定的网络连接。
下载完成后,将源代码存储在本地磁盘上。
3. 初始化和同步源代码使用Repo工具初始化本地文件夹和Git工作区。
初始化完成之后,需要对代码库进行同步操作以确保源代码是最新的。
同步的过程可能需要几个小时,取决于网络速度和源代码树的大小。
4. 设置编译环境针对不同的设备和平台,需要配置不同的编译环境。
在此步骤中,需要设置所需的环境变量和其他相关的参数,例如,配置JDK路径、选择目标平台和设备、设置NDK路径等等。
5. 生成MakefileAndroid源代码使用GNU Make来构建,因此需要生成一个Makefile列表。
这个过程使用根目录下的build/envsetup.sh文件来完成。
一旦生成了Makefile,就可以开始编译Android源代码了。
6. 执行编译执行编译操作是最耗时的部分,需要等待一段时间才能完成。
编译和构建过程是一个逐步递进的过程。
首先需要编译基础库,然后编译各个组件和应用程序。
这个过程需要在控制台中执行一系列的命令,并且需要注意一些错误和警告消息。
7. 生成系统映像一旦编译完成,在源代码树下的out目录中就会生成一个system.img文件,这是Android系统的镜像文件。
关于如何定制开发Android第三方ROM,最全开发教程、原理阐述
Android在宏观上的结构如下 从上至下依次为:应用程序层、应用程序框架层(提供给应用程序对低层接口)、支持库及Android运行时环境(含核心库及Java虚拟 机)、Linux内核
|-- ndk
|-- device
|-- out (编译完成后的代码输出与此目录)
|-- packages (应用程序包)
|-- prebuilt (x86和arm架构下预编译的一些资源) |-- sdk (sdk及模拟器) |-- system (文件系统库、应用及组件——C语言) `-- vendor (厂商定制代码)
2、Android系统结构
接下来就说一说Android系统的结构,对于Android系统结构的了解对于Android软件开发和ROM制作都很重要。 只有当你真正了解了Android是怎样的构成的时候,才能更深刻的理解之后每一步做的是什么,也才能明白出了问题可能是哪里的问题。
(1)宏观
Android是基于Linux内核的, Linux内核是什么不知道?简单地说就是Linux是一个操作系统,Linux Kernel就是这个系统最最基本的部分,是核心。 好比用户数最多的Windows系统,你看道的那些窗口啊、画图计算器扫雷那些附件啊什么的,不过是架在Windows的内核之上而已。 所谓内核,就是供上层用户库、用户程序调用的核心。就好比计算所得税有一个公式,而其核心是加减乘除四则运算……扯远了……
|-- dalvik (dalvik JAVA虚拟机)
AndroidStudio应用开发入门教程
AndroidStudio应用开发入门教程第一章:AndroidStudio入门1.1 AndroidStudio的介绍AndroidStudio是一种专为Android应用开发而设计的集成开发环境(IDE),它提供了丰富的工具和功能,方便开发者进行代码编写、调试和测试。
本章将对AndroidStudio进行介绍,包括其特点、安装步骤等。
1.2 安装AndroidStudio步骤1:下载AndroidStudio安装包。
步骤2:运行安装程序,按照提示完成安装。
步骤3:打开AndroidStudio,配置安装路径并导入必要的组件。
步骤4:创建Android虚拟设备(AVD)以便在模拟器中进行测试。
第二章:项目创建与设置2.1 创建新项目步骤1:在AndroidStudio中点击“Start a new Android Studio project”。
步骤2:填写应用名称、包名等基本信息。
步骤3:选择最低支持的Android版本。
步骤4:选择模板,如空白活动、基于导航的活动等。
步骤5:点击“Finish”按钮创建新项目。
2.2 配置项目设置步骤1:在项目结构上右击,选择“Open Module Settings”。
步骤2:在“Modules”选项卡中配置应用程序的模块。
步骤3:在“Dependencies”选项卡中添加项目所需的依赖库。
步骤4:在“Flavors”选项卡中配置应用的不同变体。
第三章:界面设计与布局3.1 Android布局介绍Android应用程序的布局和视图层次结构的基本概念,如LinearLayout、RelativeLayout、ConstraintLayout等,并给出实例代码进行演示。
3.2 使用XML进行界面设计介绍使用XML文件进行Android界面设计的基本方法,例如使用TextView、Button、EditText等控件,以及使用LinearLayout、ConstraintLayout等布局容器。
android开源图表库MPAndroidChart(曲线图、直方图、饼状图)
android开源图表库MPAndroidChart(曲线图、直⽅图、饼状图)添加依赖:Add the following to your project level build.gradle:allprojects {repositories {maven { url "https://jitpack.io" }}}Add this to your app build.gradle:dependencies {compile 'com.github.PhilJay:MPAndroidChart:v3.0.2'}下载Demo演⽰,修改成⾃⼰的需求即可如饼图的⽰例代码:import android.graphics.Color;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.DisplayMetrics;import com.github.mikephil.charting.charts.PieChart;import ponents.Description;import ponents.Legend;import com.github.mikephil.charting.data.PieData;import com.github.mikephil.charting.data.PieDataSet;import com.github.mikephil.charting.data.PieEntry;import java.util.ArrayList;public class MainActivity extends AppCompatActivity {private PieChart mChart;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);mChart = (PieChart) findViewById(R.id.pieChart);PieData mPieData = getPieData(4, 100);showChart(mChart, mPieData);}private void showChart(PieChart pieChart, PieData pieData) {pieChart.setHoleColor(Color.TRANSPARENT);pieChart.setHoleRadius(60f); //半径pieChart.setTransparentCircleRadius(64f); // 半透明圈//pieChart.setHoleRadius(0) //实⼼圆Description description = new Description();description.setText("测试饼状图");pieChart.setDescription(description);// mChart.setDrawYValues(true);pieChart.setDrawCenterText(true); //饼状图中间可以添加⽂字pieChart.setDrawHoleEnabled(true);pieChart.setRotationAngle(90); // 初始旋转⾓度pieChart.setRotationEnabled(true); // 可以⼿动旋转pieChart.setUsePercentValues(true); //显⽰成百分⽐pieChart.setCenterText("测试"); //饼状图中间的⽂字pieChart.setCenterTextSize(18);//设置数据pieChart.setData(pieData);Legend mLegend = pieChart.getLegend(); //设置⽐例图mLegend.setPosition(Legend.LegendPosition.RIGHT_OF_CHART); //最右边显⽰// mLegend.setForm(LegendForm.LINE); //设置⽐例图的形状,默认是⽅形mLegend.setXEntrySpace(7f);mLegend.setYEntrySpace(5f);pieChart.animateXY(1000, 1000); //设置动画}/**** @param count 分成⼏部分* @param range*/private PieData getPieData(int count, float range) {ArrayList<String> xValues = new ArrayList<String>(); //xVals⽤来表⽰每个饼块上的内容for (int i = 0; i < count; i++) {xValues.add("Quarterly" + (i + 1)); //饼块上显⽰成Quarterly1, Quarterly2, Quarterly3, Quarterly4 }ArrayList<PieEntry> yValues = new ArrayList(); //yVals⽤来表⽰封装每个饼块的实际数据// 饼图数据/*** 将⼀个饼形图分成四部分,四部分的数值⽐例为14:14:34:38* 所以 14代表的百分⽐就是14%*/float quarterly1 = 14;float quarterly2 = 14;float quarterly3 = 34;float quarterly4 = 38;yValues.add(new PieEntry(quarterly1, 0));yValues.add(new PieEntry(quarterly2, 1));yValues.add(new PieEntry(quarterly3, 2));yValues.add(new PieEntry(quarterly4, 3));//y轴的集合PieDataSet pieDataSet = new PieDataSet(yValues, "Quarterly Revenue 2014"/*显⽰在⽐例图上*/); pieDataSet.setSliceSpace(0f); //设置个饼状图之间的距离ArrayList<Integer> colors = new ArrayList<Integer>();// 饼图颜⾊colors.add(Color.rgb(205, 205, 205));colors.add(Color.rgb(114, 188, 223));colors.add(Color.rgb(255, 123, 124));colors.add(Color.rgb(57, 135, 200));pieDataSet.setColors(colors);DisplayMetrics metrics = getResources().getDisplayMetrics();float px = 5 * (metrics.densityDpi / 160f);pieDataSet.setSelectionShift(px); // 选中态多出的长度PieData pieData = new PieData(pieDataSet);return pieData;}}activity_main.xml<com.github.mikephil.charting.charts.PieChartandroid:id="@+id/pieChart"android:layout_width="match_parent"android:layout_height="320dp"/>。
AndroidHawk数据库github开源项目,带你彻底弄明白
AndroidHawk数据库github开源项⽬,带你彻底弄明⽩能存储任何类型先看看例⼦ ?符合项⽬的需要之后往下看存储例⼦:Hawk.put("key", "something"); // Save stringHawk.put("key", true); // save booleanHawk.put("key", new Foo()); // save an objectHawk.put("key", List<String>); // save listHawk.put("key", List<Foo>); // save listHawk.put("key", Map<Foo,Foo>); // save mapHawk.put("key", Set<Foo>); // save setHawk.put("key", 1234); // save numbers获取的例⼦:String value = Hawk.get(key);int value = Hawk.get(key);Foo value = Hawk.get(key);boolean value = Hawk.get(key);List<String> value = Hawk.get(key);List<Foo> value = Hawk.get(key);Map<String,Foo> value = Hawk.get(key);Set<Foo> value = Hawk.get(key);(⼀) 添加进项⽬android studio 在gradle中进⾏配置repositories {// ...}dependencies {compile 'com.github.orhanobut:hawk:1.21'}eclipse ⽤户请下载后导⼊项⽬可以参考下⽅的Simple(⼆) 初始化Hawk初始化只需要⼀次就⾏了 ?放在你最开始执⾏的activity⾥⾯或者 applicationHawk.init(this).setEncryptionMethod(HawkBuilder.EncryptionMethod.MEDIUM).setStorage(HawkBuilder.newSqliteStorage(this)).setLogLevel(LogLevel.FULL).build();能使⽤⾼安全级别 ?初始化可能需要 36-400ms 并且需要你提供密码 ? Hawk.init(this).setEncryptionMethod(HawkBuilder.EncryptionMethod.HIGHEST).setStorage(HawkBuilder.newSqliteStorage(this)).setLogLevel(LogLevel.FULL).build();初始化可以选择 SQLite 或者 SharePreference.setStorage(HawkBuilder.newSqliteStorage(this))or.setStorage(HawkBuilder.newSharedPrefStorage(this))(三) 存数据Hawk.put(key, T); // Returns the result as boolean您还可以通过使⽤链功能存储多个项⽬。
把手图文并茂教你发布Android开源库
把⼿图⽂并茂教你发布Android开源库把⼿图⽂并茂教你发布Android开源库今天的Agenda如下:主⼯程下的的build.gradle配置Maven,jcenter服务创建⼀个类module上传类库到jcenter仓库注册/bintray账号添加package添加bintray插件编译类库配置local.properties添加Bintray认证AndroidStudio终端使⽤命令上传Bintray中同步到Jcenter,发送打包请求升级类库,再打包过程背景AndroidStudio是从MavenRepository下载类库的。
基本上有jcenter和MavenCentral这两个服务器⽤于下载Android的类库。
在⼯程(注意是主⼯程下的)中的build.gradle有⼀段脚本如下:buildscript{repositories{jcenter()//jcenter仓库mavenCentral()//MavenCentral仓库}dependencies{classpath''com.android.tools.build:gradle:2.1.0''classpath''com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2''classpath''com.github.dcendents:android-maven-gradle-plugin:1.3''//NOTE:Donotplaceyourapplicationdependencieshere;theybelong//intheindividualmodulebuild.gradlefiles}}allprojects{repositories{jcenter()}}了解到Googlestudio团队最先使⽤MavenCentral作为远程仓库下载我们⽤的编译类库的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
把手图文并茂教你发布Android开源库今天的Agenda如下:主工程下的的build.gradle配置Maven,jcenter服务创建一个类module上传类库到jcenter仓库注册/bintray账号添加package添加bintray插件编译类库配置local.properties添加Bintray认证Android Studio终端使用命令上传Bintray中同步到Jcenter,发送打包请求升级类库,再打包过程背景AndroidStudio是从Maven Repository 下载类库的。
基本上有jcenter和Maven Central这两个服务器用于下载Android的类库。
在工程(注意是主工程下的)中的build.gradle有一段脚本如下:buildscript {repositories {jcenter() //jcenter仓库mavenCentral() //Maven Central仓库}dependencies {classpath 'com.android.tools.build:gradle:2.1.0'classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files}}allprojects {repositories {jcenter()}}了解到Google studio团队最先使用MavenCentral作为远程仓库下载我们用的编译类库的。
MavenCentral有一些问题。
首先是对于开发者体验不好,种种原因Google studio团队远程仓库换成jcenter。
jcenter有一个打包工厂,每天特别多的类库从此诞生,用于github上各种项目中。
像我们平时在app目录下build.gradle中的dependencies中经常看到的:compile 'com.hejunlin.superindicatorlibray:superindicatorlibray:1.0.3'1这是什么意思呢?它实际上相当于GROUP_ID:ARTIFACT_ID:VERSION1在这句代码里面的GROUP_ID是com.hejunlin.superindicatorlibray,ARTIFACT_ID是superindicatorlibray(类库名),VERSION是1.0.3。
创建一个类module首先在Android Studio中点击File菜单,选择New->New Module,然后在弹出视图中选择Android Library,点击Next后填写库的名称。
创建完新的library后就可以写公用部分的类代码了,我这里是写superindicatorlibray,写好后,肯定还得有一个sample之类的测试这个类库,我用的是默认app工程,里面有Activity 之类的,接下来就在app工程引用这个类库,在app下的build.gradle中添加依赖:compile project(‘:superindicatorlibray’) //冒号后是你的类库的名字本地充分测试好后,接着你就上要开始上传jcenter仓库了。
上传类库到jcenter仓库那么如何上传你的类库到jcenter仓库?注册Bintray用户,Bintray是一个可以托管Android库的平台,JCenter则由Bintray进行维护的。
打开https:///,进行注册,然后登录。
点击add,然后如图填写:填完后,如出现前面图中那样,有一个maven的仓库,接下来要在这里添加package,点击Add New Package,如图:现在一个空仓库和一个package已经创建好了,接下来要在studio,写脚本配置,上传类库添加bintray插件在module中类库下build.gradle中添加如下脚本apply plugin: 'com.jfrog.bintray'//添加bintray插件apply plugin: 'com.github.dcendents.android-maven'12Bintray在上传库时需要一个pom文件,而这个文件可以让Maven插件自动生成,但你还是需要给出groupId和version的值,将下面这两行代码添加到库module的build.gradle中。
group = 'com.hejunlin.superindicatorlibray'version = '1.0.3'12编译类库写过ant脚本的话,知道,ant中都是一个个target,而gadle中是task,所以接下来写几个task,对应分别分别生成Jar,Javadoc和JavadocsJar,将下面三个task代码添加到库module的build.gradle文件即可。
task generateSourcesJar(type: Jar) {from android.sourceSets.main.java.srcDirsclassifier 'sources'}task generateJavadocs(type: Javadoc) {source = android.sourceSets.main.java.srcDirs //source指定了源码位置classpath += project.files(android.getBootClasspath().join(File.pathSeparator))}//这里dependsOn意为仅当generateJavadocs完成后才开始本task,和ant脚本也是对应的。
task generateJavadocsJar(pe: Jar, dependsOn: generateJavadocs) { from generateJavadocs.destinationDirclassifier 'javadoc'}将本地编译过的类库及源码及doc文件上传到Maven仓库中package中,需要将task添加到一个archive中,只需要向库module下的build.gradle中添加如下代码:artifacts {archives generateJavaDocsJararchives generateSourcesJar}配置local.properties添加Bintray认证接下来还要配置local.properties添加Bintray认证,git提交时,也会让你填用户名和密码,那jcenter,如何配置呢?我们须要本地local.properties文件下配置,如果没有没有就创建一个,放在主工程目录下:内容如下:er=你的Bintray注册时的名字bintray.apikey=xxxxxxxxxxxxxxxxxxxxx12接下来说下这个apikey在哪?输入密码,就可以得到这个key。
接下来回到库module下的build.gradle中添加如下脚本:Properties properties = new Properties()properties.load(.rootProject.file('local.properties').newDataInputStream())bintray {user = properties.getProperty("er")key = properties.getProperty("bintray.apikey")pkg {repo = 'maven'name = 'com.hejunlin.superindicatorlibray'version {name = '1.0.3-release'desc = "a superindicatorlibray for viewpager, banner"vcsTag = '1.0.3'}licenses = ['Apache-2.0']vcsUrl = 'https:///hejunlin2013/SuperIndicator.git'websiteUrl = 'https:///hejunlin2013/SuperIndicator' }configurations = ['archives']}Android Studio终端使用命令上传最后我们在Android studio中Terminal命令行中,执行:gradlew install如果顺利的话,过几分钟就会出现恭喜你,编译成功了,去类module看,多了个build的目录,这里东西一会要上传jcenter:接下来需要把build成功的文件upload到bintray上,同样在Terminal命令行,执行如下命令:gradlew bintrayUpload顺利的话,也会出现,和上面的图一样的BUILD SUCCESSFULBintray中同步到Jcenter,发送打包请求这时检查你在bintray创建的package,你会看到对应的版本号点击进去,如图,首次没有打包时,这里是一个add to jcenter的字样,我这里是打了包的。
就变成了下图:点击那个箭头的“add to jcenter”,接下来会跳到一个Request to include package GradientUI in jcenter的页面,填下你的groupId,直接send,就会发起一个打包版本的请求,过几个小时,通过jcenter那边的审核就会在bintray上收到jcenter那边的同意消息提醒。
恭喜你,你的类库上传到jcenter成功了!大家都可以用你的类库了。
升级类库,再打包过程我们上传完成后,如发现类库中的一个bug,这就涉及到更新问题,那么怎么更新呢?一句话,修改代码后,改本地build.gradle的版本号,按上面的操作,执行gradlew install,gradlew bintrayUpload,到bintray上点击“Stage snapshots on ”同样发送一个请求,不用几分钟,就可以用了,升级,不像首次提交那样,非常快。