如何优雅的使用mac地使用Android Studio

本节将介绍如何使用Android Studio开发Android APP,和前面Eclipse + ADT + SDK搭建Android开发环境一样,本节也只是介绍一些基本东西,深入的,比如快捷键,小技巧等会再另一篇文章中详细地介绍!
1.下载Android Studio
官网下载:
百度云下载:
2.安装Android Studio
傻瓜式的下一步而已,只列出需要注意的页面:
3.新建工程
安装完毕后,打开我们的Android Studio,第一次启动需要下载SDK等一些东西,时间比较长,笔者等了大概40分钟才下载完毕
选择第一项,新建一个Android项目
选择开发程序将运行在哪个平台上:
选择Activity的风格:
设置进入程序一个页面后的Activity的一些信息
Finish然后是漫长的等待~
4.IDE的界面分析
先看下整个界面吧:
接着看下我们的项目结构,而我们一般关心的只是app这个目录:
5.运行下程序试试
点击菜单栏的X,即可运行程序:
6.本节小结
Android Studio的用法还是比较简单的,当然笔者也是刚用Android Studio,后续还会写一篇更深入一点的文章,这里大家琢磨琢磨,暂时能跑起程序,知道在哪里写代码,怎么看Logcat就可以了!
1.2.2 使用Android Studio开发Android APP
记住登录状态
重复输入密码最近经常有人问我, 如何管理gradle版本, 我来统一讲解这些小技巧.
随着Android开发的成熟, 模块越来越多, 为了开发稳定的程序, 引入的库也随之增加, 如何确保所有项目使用相同的编译版本he库版本呢?
当然, Gradle的参数配置可以帮我们实现这些.
(1) 常用库的展示与配置.
(2) 统一管理项目和库的版本.
(3) 设置项目的私有参数.
编程三剑客, RxJava+Retrofit+Dagger.
常用: ButterKnife依赖注解, Glide/Picasso图片处理.
使用根项目(rootProject)的参数管理子项目的版本.
apply plugin: 'me.tatarka.retrolambda'
// Lambda表达式
apply plugin: 'com.android.application'
// Android应用
apply plugin: 'com.neenbedankt.android-apt' // 编译时类
apply plugin: 'com.android.databinding'
// 数据绑定
def cfg = rootProject.ext.configuration // 配置
def libs = rootProject.ext.libraries // 库
pileVersion
buildToolsVersion cfg.buildToolsVersion
defaultConfig {
applicationId cfg.package
minSdkVersion cfg.minSdk
targetSdkVersion cfg.targetSdk
versionCode cfg.version_code
versionName cfg.version_name
buildConfigField "String", "MARVEL_PUBLIC_KEY", "\"${marvel_public_key}\""
buildConfigField "String", "MARVEL_PRIVATE_KEY", "\"${marvel_private_key}\""
buildTypes {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
// 注释冲突
packagingOptions {
exclude 'META-INF/services/javax.annotation.processing.Processor'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
// Android
compile "com.android.support:design:${libs.supportVersion}"
compile "com.android.support:appcompat-v7:${libs.supportVersion}"
compile "com.android.support:cardview-v7:${libs.supportVersion}"
compile "com.android.support:recyclerview-v7:${libs.supportVersion}"
compile "com.android.support:palette-v7:${libs.supportVersion}"
// Retrofit
compile "com.squareup.retrofit:retrofit:${libs.retrofit}"
compile "com.squareup.retrofit:converter-gson:${libs.retrofit}"
compile "com.squareup.retrofit:adapter-rxjava:${libs.retrofit}"
// ReactiveX
compile "io.reactivex:rxjava:${libs.rxandroid}"
compile "io.reactivex:rxandroid:${libs.rxandroid}"
compile "com.google.dagger:dagger:${libs.dagger}"
apt "com.google.dagger:dagger-compiler:${libs.dagger}"
compile "org.glassfish:javax.annotation:${libs.javax_annotation}"
compile "com.jakewharton:butterknife:${libs.butterknife}" // 资源注入
compile "com.github.bumptech.glide:glide:${libs.glide}" // 图片处理
compile "jp.wasabeef:recyclerview-animators:${libs.recycler_animators}" // Recycler动画
compile "de.hdodenhof:circleimageview:${libs.circleimageview}" // 头像视图
def cfg = rootProject.ext.configuration
pileVersion
def libs = rootProject.ext.libraries
${libs.retrofit}
2. 参数管理
buildConfigField管理私有参数, 配置在gradle.properties里面.
defaultConfig {
buildConfigField "String", "MARVEL_PUBLIC_KEY", "\"${marvel_public_key}\""
buildConfigField "String", "MARVEL_PRIVATE_KEY", "\"${marvel_private_key}\""
设置参数的类型\变量名\位置三个部分.
marvel_public_key
= 7fd5fabb88f9
marvel_private_key
= 281eb4f077e191ffaebeb
未指定路径, 默认是配置在gradle.properties中.
两个地方可以配置参数, 一个是项目的build.gradle, 一个是gradle.properties.
项目中使用BuildConfig.xxx引入参数.
MarvelSigningIterceptor signingIterceptor = new MarvelSigningIterceptor(
BuildConfig.MARVEL_PUBLIC_KEY, BuildConfig.MARVEL_PRIVATE_KEY);
3. 版本管理
版本管理配置在项目的build.gradle中, 包含两个部分, 一个是项目的版本, 一个是库的版本. 把常用参数设置成为变量. 子项目使用rootProject.ext.xxx的形式引入.
configuration = [
: "me.chunyu.spike.springrainnews",
buildToolsVersion: "23.0.1",
compileVersion
version_code
version_name
: "0.0.1",
libraries = [
supportVersion
: "23.1.1",
: "2.0.0-beta2",
: "1.1.0",
javax_annotation
: "10.0-b28",
butterknife
: "7.0.1",
: "3.6.1",
recycler_animators: "2.1.0",
circleimageview
buildscript {
repositories {
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0-alpha5'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
classpath 'me.tatarka:gradle-retrolambda:3.2.4'
classpath 'com.android.databinding:dataBinder:1.0-rc4'
allprojects {
repositories {
task clean(type: Delete) {
delete rootProject.buildDir
通过这样的方式管理Android项目, 可以便捷的更改版本号, 所有模块统一.
OK, that’s all! Enjoy it!
在线用户: 4今日访问: 1,546昨日访问: 9,969累计访问: 5,988,045你的位置: >
> 如何优雅地使用NDK
在Android Studio上使用了一段时间的NDK,感觉官方的插件还是不够稳定,存在一定问题,不过谷歌也声明了这个插件是在实验性阶段。幸好官方在Android Studio上提供了另一种方式使用NDK,这篇博客就讲讲这种到目前为止我觉得非常赞的方法。
基础的安卓开发环境:Android Studio、SDK、JDK
下载好NDK,自己手动下载或者用SDK工具下载都可以
我使用的版本:Android Studio 1.5.1
配置常用命令
NDK开发比较常用的命令就是生成头文件、构建so包,在android studio上我们可以先配置好命令,使用起来就很方便了,这是我感觉最赞的地方。
如下图所示,我添加了三个命令,按加号添加
其中一个命令的配置详情如下图:
命令配置参数:
javah用于生成头文件
Program:$JDKPath$/bin/javah
Parameters: -encoding UTF-8 -d ../jni -jni $FileClass$
注意:这个命令我加上了-encoding UTF-8指定编码,你可以改成你工程的编码。
Working directory: $SourcepathEntry$\..\java
ndk-build用于构建so包
Program: 你的NDK目录\build\ndk-build.cmd
注意:windows用ndk-build.cmd,MAC/Linux用ndk-build
Parameters: 什么都不用填
Working directory:$ModuleFileDir$\src\main
ndk-build clean清除so包
Program: 你的NDK目录\build\ndk-build.cmd
注意:windows用ndk-build.cmd,MAC/Linux用ndk-build
Parameters: clean
Working directory:$ModuleFileDir$\src\main
配置完三个命令之后,你就可以在右键菜单中找到这几个命令,可以直接使用。如下图演示了生成NdkTest类的头文件
让工程项目使用NDK,需要做一些配置工作
在local.properties文件中填写使用的NDK目录:
ndk.dir=你的NDK目录的绝对路径
在gradle.properties文件中添加如下代码
android.useDeprecatedNdk = true
在module的build.gradle添加如下代码:
moduleName &NdkTest&//定义NDKlibrary的名字
//ldLibs &log& 添加log库,看自己需求
//这里设置目录,默认就这样写就可以了
sourceSets {
jni.srcDir &src/main/jni&
jniLibs.srcDir &src/main/libs&
Hello word
按上面的步骤全都配置完之后就可以在Android Studio上享受NDK了。
下面写一个简单的返回Hello word字符串的程序。
首先在java中声明一个本地方法,并加载本地库,如下:
public class NdkTest
System.loadLibrary(&NdkTest&);
public static native String getString();
生成它的头文件(自动生成的名字是包名+类名me_majiajie_ndktest_NdkTest.h),并且创建c/c++文件(NdkTest.cpp),如下:
#include &me_majiajie_ndktest_NdkTest.h&
JNIEXPORT jstring JNICALL Java_me_majiajie_ndktest_NdkTest_getString
(JNIEnv *env, jclass jc)
return env-&NewStringUTF(&Hello word !!!&);
在jni目录创建一个文件命名为Android.mk,填入以下内容
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := NdkTest
LOCAL_SRC_FILES := NdkTest.cpp
include $(BUILD_SHARED_LIBRARY)
然后在jni目录创建一个文件命名为Application.mk,填入以下内容
APP_MODULES := NdkTest
APP_ABI := all
注意:Android.mk和Application.mk都是NDK默认的配置文件,关于这两个文件的详细介绍可以看。
最后生成so包就可以了,记住每次修改C文件都需要重新生成so包:
转载请注明: &
与本文相关的文章&&&&Android&Studio实战&快速、高效地构建Android应用
自营订单满39元(含)免运费
不足金额订单收取运费5元起
邀请好友参加吧
版 次:1页 数:字 数:印刷时间:日开 本:16开纸 张:胶版纸包 装:平装是否套装:否国际标准书号ISBN:3丛书名:移动开发经典丛书所属分类:&&&
下载免费当当读书APP
品味海量优质电子书,尊享优雅的阅读体验,只差手机下载一个当当读书APP
本商品暂无详情。
当当价:为商品的销售价,具体的成交价可能因会员使用优惠券、积分等发生变化,最终以订单结算页价格为准。
划线价:划线价格可能是图书封底定价、商品吊牌价、品牌专柜价或由品牌供应商提供的正品零售价(如厂商指导价、建议零售价等)或该商品曾经展示过的销售价等,由于地区、时间的差异化和市场行情波动,商品吊牌价、品牌专柜价等可能会与您购物时展示的不一致,该价格仅供您参考。
折扣:折扣指在划线价(图书定价、商品吊牌价、品牌专柜价、厂商指导价等)某一价格基础上计算出的优惠比例或优惠金额。如有疑问,您可在购买前联系客服咨询。
异常问题:如您发现活动商品销售价或促销信息有异常,请立即联系我们补正,以便您能顺利购物。
当当购物客户端手机端1元秒
当当读书客户端万本电子书免费读

我要回帖

更多关于 如何优雅使用php 的文章

 

随机推荐