[笔记] 最简是vi:命令行下的Android开发

这放假放得有点捉急了,忽然mother想要个Android生活小应用,那就动手来吧。

以前一直在手机上用命令行的,所以电脑里也就一个sdk和一个ndk,现在要开发得准备IDE啊。

看看Android Studio,上次硬盘挂彩系统重装备份后竟然没有初始化,一定要连接google获取最新sdk信息。

同样的Eclipse也需要访问google获取android开发插件。不在公司木有专线翻墙很烦躁。

那就手动来吧,gcc下写代码不都是vi的么,命令行对android一定也行。网上随处翻翻,资料不少。

先准备好android sdk和apache ant,下面把sdk下tools里的android, emulator做个链接ln到/usr/local/bin里方便使用;当然还有apache的ant和sdk里paltform-tools下的adb。

android list targets

看一看支持哪些android版本,有target id号和abi,选一个需要的记在脑子里。

android create project --target 在脑海选好的targetID --name 工程名称 --path 工程路径 --activity MainActivity --package 包路径(e.g. com.xxx.yyy)

就可以有了,比如:

android create project --target 1 --name Hello --path /tmp/Hello --activity MainActivity --package com.hello

这样repo就建立好了,cd /tmp/Hello && ls,什么都有了,还很贴心的有了Hello World代码。

android create avd -n android4 -t 1 -b default/armeabi-v7a

再创建一个Android虚拟机,名字叫android4,-t还是targetID,-b就是ABI,看当时sdk配置的了,直接用armeabi-v7a吧,可能还会有x86或其他什么的。

emulator -avd android4

启动Android虚拟机

好了,环境就这么搭好了,vi /tmp/Hello/res/values/strings.xml里把app_name给改了;给家里人用嘛,得贴心些,开个photoshop画个png icon 96 72 48 36四张大小的。

接着vi /tmp/Hello/src/com/hello/MainActivity.java开始写代码吧。

没有自动import没有autocomplete,找http://developers.androidcn.com/当好朋友。

四个小时后,一切准备好了。

cd /tmp/Hello && ant debug

adb install bin/Hello-debug.apk

可以各种运行了,后面有时间再看看release与签名吧。

纯命令行就这么简单,那些复杂的IDE是方便,但是没有它们照样干活~


补遗:

如果需要JNI的支持,先确定下载了Android NDK,并且ndk-build可以正常使用。

在project根目录下mkdir jni && vi jni/runtime-jni.c

#include <string.h>
#include <jni.h>
jstring Java_xxx_KlassName_methodName(JNIEnv* env, jobject thiz) {
  return (*env)->NewStringUTF(env, "Hello JNI.");
}
vi jni/Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := runtime-jni
LOCAL_SRC_FILES := runtime-jni.c

include $(BUILD_SHARED_LIBRARY)

之后在xxx.KlassName里methodName:

package xxx;
public KlassName {
  static { System.loadLibrary("runtime-jni"); }
  public native String methodName();

  // other code
}

在运行ant debug编译apk之前,先运行 ndk-build,之后一切okay!






发布了51 篇原创文章 · 获赞 37 · 访问量 20万+

猜你喜欢

转载自blog.csdn.net/prog_6103/article/details/49002245