第3節 - Java, Android和LibGDX要學的知識
這一節我會例出大部Java, Android和LibGDX須要學的詞彙(我會不斷更新),重要的詞彙會在其他章節介紹。
Java基本知識
Java是一種物件導向程式,所以Java主要可分為兩部分,第一部分是Java的基本知識; 第二部分是Java的物件導向(OOP)程式。
Java的基本知識就和其他非物件導向程式相似,基本包括: print(), read(), write(), data types (integer, string), variables, 運算子(operator), 運算元(operand), if~else loop, for loop, do-while loop, switch case, array等等,我會在本章列出主要詞彙。
與學習一種語言相似,例如英語,只要掌握Java的基本語法,其實大部分程式語言的基本知識都是大同小異。
- Java JDK and JRE
- public static void main(string args[])
- System.out.println()
- comment(// and /*..*/)
- Escape sequence(\b \t \n \f \r \' \'' \\ \ooo \uhhhh)
- Data type(boolean, char, byte, short, int, long, float, double)
- bit and byte
- import java.io.*
- throws IOException
- BufferedReader
- System.in
- readLine()
- integer.parseInt()
- Double.parseDouble()
- Expression (Operator & Operand)
- operator
- operand
- Assignment operator
- Shift operator
- Relational operator
- Logical operator
- if, if~else, if~else if~else
- cast
- for loop
- while, do-while loop
- switch case, break, continue, default
- charAt()
- Array
- etc.
java物件導向
除了以上的Java基本知識外,Java最重要部分其實是物件導向程式,物件導向程式的五大重點:
- Class
- Object
- Inheritance
- Abstract
- Interface
Android能夠出現,就是用了Java以上的物件導向特性,開發出來的。
- class
- class variable
- class method
- instance
- instance variable
- instance method
- field
- member variable
- class variable
- method (void & return)
- global and local variable
- static
- final
- new
- constructor
- this()
- super()
- argument & parameter
- modifier (public, private, protected, default)
- class library (String, Integer, Math etc.)
- null
- finalize()
- inheritance (subclass, superclass)
- extends
- encapsulation
- polymorphism
- Dynamic dispatch
- getter & setter
- overloading & overriding
- @override
- tostring()
- interface
- implements
- abstract
- muliple inheritance
- superinterface & subinterface
- package & subpackage
- import
- java.lang.Object
- exception handling
- try, catch & finally
- Throwable (Error, Exception, IOException, RuntimeException, ArrayIndexOutOfBoundsException)
- stream
- InputStreamReader
- BufferedReader
- readlin()
- PrintWriter
- close()
- thread()
- run()
- start()
- sleep()
- join()
- Runable
- synchronized
- Graphic
- Applet
- etc.
Android基本知識
- Android SDK
- IDE, ADT, AVD
- drawable-hdpi, drawable-ldpi, drawable-mdpi
- AndroidManifest.xml
- proguard.cfg
- project.properties
- main.xml
- string.xml
- Activity
- Broadcast Receiver
- Service
- Content Provider
- Lift-Cycle (onCreate(),onStart(), onResume(), onPause(), onStop(), onDestroy(), onRestart())
- onCreate(Bundle SavedInstanceState)
- @Override
- super.onCreate(savedInstanceState)
- setContentView(R.layout.main)
- Layout (LinearLayout, AbsoluteLayout, RelativeLayout, TableLayout, FrameLayout)
- orientation (vertical, horizontal)
- comment(// and /*..*/)
- Widgets
- TextView
- EditText
- Button
- R.java
- findViewById()
- OnClickListener (setOnClickListener(), onClick(View v))
- Toast
- AlertDialog
- CheckBox
- RadioGroup
- RadioButton
- Spinner
- ImageView
- BaseAdapter (getCount(), getView(), getItem(0, getItemId())
- GridView
- ListView
- LayoutInflater (inflate())
- onCreateOptionsMenu()
- onCreateContextMenu()
- Intent (implicit intent and explicit intent)
- startActivity()
- startActivityForResult()
- setClass() and get
- setResult()
- onActiveResult()
- Activity (onCreate(), onStart(), onResume(), onPause(), onStop(), onRestart(), onDestroy())
- try, catch, finally
- Log
- DDMS
- SharedPreferences (MODE_PRIVATE, MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE)
- FileOutputStream, FileInputStream
- BufferedOutputStream, BufferedInputStream
- SQLiteDatabase (execSQL(), rawQuery(), query(), insert(), update(), delete(), close())
- openOrCreateDatabase()
- SimpleCursorAdapter
- SQLiteDatabase & SQLiteOpenHelper
- AnalogClock
- DigitalClock
- Chronometer
- Timer
- TimerTask
- Message
- Handler
- Thread
- ClockThread
- MediaPlayer
- VideoView
- SurfaceView
- SurfaceHolder
- MediaRecorder
- .apk file
- Admod
- Canvas
- Drawables
- onDraw()
- invalidate()
- Bitmap
- SurfaceHolder.callback
- getHolder()
- addCallback()
- lockCanvas() & unlockCanvasAndPost()
- etc.
LibGDX基本知識
- Starter Class & Main Class
- Backends (LWJGL, Android, WebGL, IOS)
- Modules (Application, Graphic, Audio, Input, Files, Network)
- Lift-Cycle (create(), resize(), render(), pause(), resume(), dispose())
- LwjglApplicationConfiguration
- LwiglApplication()
- GwtApplicationConfiguration
- ApplicationListener
- MainActivity
- AndroidApplication
- AndroidApplicationConfiguration
- initialize()
- OrthographicCamera
- SpriteBatch
- Texture
- TextureRegion
- Sprite
- Debugger & Code Hot Swapping
- UML class diagram
- Assets
- WorldRenderer
- WorldController
- CameraHelper
- AbstractGameObject
- Level
- Vertical synchronization(vsync)
- deltaTime
- Garbage Collector(GC)
- Texture atlases
- Non-Power-Of-Two(NPOT)
- Texture packer
- Design pattern - Singleton
- TextureFilter
- AssetManager
- Level diagram & Level loader
- Graphic User
- Interface(GUI)
- Head-Up Display(HUD)
- Frame per second (FPS)
- Bitwise shift operator
- Viewport, CameraView
- Bitmap font
- Actors
- Collision detection
- Game menu & options
- Scene2D
- Audio (Sound & music)
- Special effects (particle system)
- Linear interpolation (Lerp)
- Render to Texture (RTT)
- Pulse-Code Modulation (PCM)
- AudioDevice
- AudioRecorder
- Sound generator (sfxr, bfxr, cfxr & as3sfxr)
- AudioManager
- Box2D
- Physics engine (Bullet)
- Programmable Pipeline
- OpenGL Shading Lanuage(GLSL)
- Animations
- Array AlasRegion
- etc.