异想天开

What's the true meaning of light, Could you tell me why

何事惹尘埃,java学习笔记

日期:2014-07-13 23:08:02
  
最后更新日期:2017-07-05 18:23:32
【技术文章,非码农勿入】
大学时有一种凡是用xxx语言可以做到,xxx语言照样也可以做到的,所以没有必要学习xxx语言的逻辑。现在有一种你想要更好生活在这个世界,那么你必须了解这个世界的意识。利用周六一天时间看了一下java相关的一本书-《Thinking in java》的中文版,此书大概600来页,有时觉得看技术书时,开始没有必要那么认真,技能是需要实践的,而功底是慢慢培养的,所以用一种不认真的轻松的态度翻阅了一天,期间编译了几个小程序,尝试了下android的开发流程。
1.配置环境
官网下载jdk(java develop tools kit),配置环境变量JAVA_HOME,CLASSPATH即可。
[code lang="cpp"]
JAVA_HOME=x:/jdk1.6.0
CLASSPATH=./;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar
PATH=.;%JAVA_HOME%/bin
[/code]
在cmd.exe下用echo %JAVA_HOME%方式来查看配置的环境变量,更改环境变量后,需要重新打开cmd.exe,再echo。或者cmd.exe下键入如下,若有显示则成功。
[code lang="cpp"]
javac -help
java -help
[/code]

2.命令行编译方式
如下面的代码:
[code lang="cpp"]
#文件名 test.java:
package hello.world;
public class test
{
public static void main(String[] args)
{
System.out.println("hello world");
}
}
[/code]
进入test.java的源目录,使用:
[code lang="cpp"]
javac -d . test.java
[/code]
那么将创建自动创建文件目录来存放class文件。
执行时:
[code lang="cpp"]
D:\workspace\java_test>java hello.world.test
hello world
[/code]
怎么打jar包?
首先需要新建manifest.mf文件,配置文件,指示jar的第一个类
[code lang="cpp"]
[root@localhost ~]# cat manifest.mf
Manifest-Version: 1.0
Main-Class: hello.world.test
#目录结构
./
./hello
./hello/world
./hello/world/test.class
#编译命令
jar cmf manifest.mf test.jar hello/world/*.class
java -jar ./test.jar
[/code]

3.IDE
一般还是使用一个IDE比较方便,eclipse是一款开源编辑器。我也选择了它,这里记录一下它的一个快捷键,比如自动对齐功能:
[code lang="cpp"]
ctrl+shift+F
[/code]

4.java安卓开发环境
什么时候耐心非常重要,第一次接触安卓的人更需要如此,建议耐着性子官网逛一逛,官网为https://developer.android.com/sdk/index.html,由于众所周知的原因,这个网站还是自己加上https访问好,不是https访问时,我就遭遇了域名劫持。通过官网了解到信息是:
a.官网上介绍了一个可能成为官方的Android Studio的IDE和开发工具。
b.安卓开发新手,官网建议直接下载一个集成了开发工具的ADT Bundle包,我是新手,所以我下载了这个包,的确很方便。
[code lang="cpp"]
If you're a new Android developer, we recommend you download the ADT Bundle to quickly start developing apps.
[/code]
这个包含如下开发安卓必备的组件:
[code lang="cpp"]
Eclipse + ADT plugin
Android SDK Tools
Android Platform-tools
A version of the Android platform
A version of the Android system image for the emulator
[/code]
ADT Bundle包地址:
https://dl.google.com/android/adt/adt-bundle-windows-x86_64-20140624.zip
不得不提的是,你可能需要自己运行sdk manager.exe下载Android system image,而且需要注意的是,现在手机系统大多用多的是API 17和API 18,假设你要用真机测试时,这个也比较重要。

5.java安卓开发
java android的开发,相对于windows的sdk已经做到很人性化了。但是还是需要有一些基本概念,这样你才知道个大概方向。关于这一点概念,我是直接找一个会android开发的人给我整了一个hello world的demo,所以这个从无到有的过程还是比较轻松。用我浅薄的经验来总结一下这个hello world的demo吧。
a.android程序的用一个自定义的继承Activity类进入程序逻辑,所以这个Activity类比较重要。这个hello world的MainActivity.java文件的代码如下:
[code lang="cpp"]
package com.example.hello;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity {

TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
[/code]
因为我的IDE这个类没有自动生成,虽然朋友说他的IDE可以自动生成它,所以我还是记录在这里备忘。这里用到两个让我感觉酷炫的eclipse中的快捷键:
[code lang="cpp"]
Alt + Shift + s 来定义重载函数
点中某个类,Ctrl + Shift + o来自动导入需要的package
[/code]
b.定义界面
android界面用xml来定义,比如自己在目录层次的res->layout,new一个android xml layout file即可,然后可以用图形化的拖拽的方式拖控件即可。这个layout显示可以在Activity的oncreate的时候,setContentView(R.layout.main)来显示。
c.在eclipse项目的根目录下,有一个类似AndroidManifest.xml来定义这个app的基本东西。
[code lang="cpp"]
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.hello"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="8"
// 运行环境的android版本,21貌似有点高,不行的话,换一个低一点的,17,18
android:targetSdkVersion="21" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity android:name="MainActivity" >
<intent-filter>
// 下面这两行是必须的,当时是直接从另外一个demo里面copy过来的
<action android:name="android.intent.action.MAIN" />
// 定义了LAUNCHER,那么app将会在手机屏幕上面显示,如果不是service的话,还是需要的
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>
[/code]
有了如上概念就可以捣鼓出来一个hello world的demo了。

6.java语言
先省略