មាតិកា
I. សេចក្តីផ្តើម
II. គោលបំណង
III. តម្រូវការ
IV. របៀបបង្កើត Android Project
V. ពិពណ៌នាអំពី Structure របស់ Android Project
VI. The Android Activity Lifecycle Methods
VII.Reference
I. សេចក្តីផ្តើម
Android Studio គឺជាកម្មវិធីសម្រាប់អោយយើងធ្វើការសរសេរនូវ android សម្រាប់ mobile app។ យើងអាចធ្វើការទាញយក latest version ពីក្នុងវេបសាយ https://developer.android.com។ ខាងក្រោមនេះគឺជាការបង្ហាញពីរបៀបបង្កើត Project នៅក្នុង android studio រួមនឹងការពិពណ៌នាអំពី Android Project Structure។
II. គោលបំណង
ក្រោយពីអនុវត្តន៍តាម Tutorial នេះ លោកអ្នកនឹងយល់អំពី
- យល់ដឹងអំពីរបៀបបង្កើត Project នៅក្នុង Android Studio
- យល់ដឹងអំពីStructure របស់ Android Project
III. តម្រូវការ
ដើម្បីអាចបង្កើត Android Project បាន យើងត្រូវមាន៖
- កម្មវិធី Android Studio (version 3.2.1)
- ត្រូវមាន Internet connection (ករណីដែលយើងចង់ធ្វើការប្រើប្រាស់ gradle ដើម្បីទាញយក library និងករណីផ្សេងៗចាំបាច់ទៀត)
- Maximum RAM យ៉ាងហោចណាស់ 4GB ឡើង
- CPU គួរតែជាប្រភេទ intel CORE i3 ឡើងទៅ ទើបប្រសើរ
- គួរមាន Hard Disk ប្រភេទ SSD ទើបវាពន្លឿនក្នុងការ run android project បានរលូន
- ត្រូវមាន phone ដែលប្រើប្រាស់ប្រតិបត្តិការ android
- ករណីដែលយើងគ្មាន Phone ដែលប្រើប្រាស់ប្រតិបត្តិការ Android ទេ យើងក៏អាចធ្វើការប្រើប្រាស់ Genymotion សម្រាប់ធ្វើជា Emulator
IV. របៀបបង្កើត Android Project
ខាងក្រោមនេះគឺជារបៀបបង្កើត Android Project នៅក្នុង Android Studio
- បើកកម្មវិធី Android Studio ឡើង
- ចុចលើ Start a new Android Studio project
- ចុច Next
- ក្នុងរូបខាងលើនេះ យើងអាចធ្វើការ build app ជាមួយ៖
- Phone and Tablet
- Wear OS
- TV
- Android Auto
- Android Things
- ក្នុងករណីនេះ សូមធ្វើការ Build app ជាមួយប្រភេទទូរស័ព្ទ ដោយរើសយក Phone and Tablet រួចជ្រើសរើសយកប្រភេទ Android version ណាមួយដែលយើងចង់បាន
- ចុច Next
- យើងអាចរើសយកប្រភេទ template ណាមួយក៏បានដែល
- ក្នុងនេះ ខ្ញុំយក Basic Activity
- ចុច Next
- យើងអាចធ្វើការប្តូរឈ្មោះ Activity Name, Layout Name ហើយនិង Title ទៅតាមចំណង់ចំណូលចិត្តអ្នក
- ក្នុងករណីនេះ ខ្ញុំសូមយកឈ្មោះ default របស់វា
- ចុច Finish
- សូមធ្វើការរង់ចាំ ដើម្បីអោយវាធ្វើការ generate រាល់នូវ dependencies របស់ Project
- បន្ទាប់មកវានឹងបង្ហាញរូបរាងដូចខាងក្រោម
V. ពិពណ៌នាអំពី Structure របស់ Android Project
សូមពិនិត្យមើល Project Structure ដូចខាងក្រោម
- សូមមើលទៅកាន់ folder និមួយៗ រួមនឹង ការបរិយាយរបស់វា
ឈ្មោះរបស់ folder | ការបរិយាយ |
src | src មកពីពាក្យថា Source Code. វាផ្ទុករាល់ Java Source files. |
gen ឬ generatedJava | gen តំណាងអោយ Generated Java Library។ library នេះគឺប្រើសម្រាប់តែក្នុង Android តែប៉ុណ្ណោះ។ |
res | ប្រើសម្រាប់ផ្ទុកនូវរាល់ assets ដូចជា image, icon, layout, menu |
res |
res តំណាងអោយ Resource file។ វាផ្ទុកនូវ resource files ដូចជា pictures, XML files, ជាដើម។ វាក៏ផ្ទុកនូវ folders បន្ថែមទៀតផងដែរដូចជា Drawable, Layout ហើយនិង Values. – Drawable ត្រូវបានគេប្រើដើម្បីផ្ទុកនូវ graphic files ផ្សេងៗគ្នា។ ខាងក្រោមនេះគឺជាប្រភេទ drawable ដែលមានទំហំខុសៗគ្នានៅក្នុង drawable folders, 1. drawable-mdpi 2. drawable-hdpi 3. drawable-ldpi drawable folders ខាងលើតម្រូវអោយវាស្ថិតតាមលំដាប់លំដោយ ដើម្បីអោយវាអាចសម្របទៅតាមប្រភេទនៃ screen resolutions ។ Layout: វាត្រូវបានប្រើសម្រាប់ដាក់នូវ XML layout files ដើម្បីធ្វើការកំណត់នូវ Objects របស់ Android ដូចជា textbox, buttons, ជាដើម ដែលត្រូវបានរៀបចំនៅលើ screen។ menu: វាត្រូវបានប្រើសម្រាប់ធ្វើការកំណត់នូវ XML files នៅក្នុង application menu។ values: វាត្រូវបានប្រើសម្រាប់ XML files ដែល stores នូវ string values ដូចជា titles, labels ។ល។ |
AndroidManifest.xml | file នេះបង្ហាញអំពី definition file របស់ android។ នៅក្នុង file នេះផ្ទុកទៅដោយព័ត៌មានអំពី Android application ដូចជា minimum Android version, និង permission ដើម្បី access នូវសមត្ថភាពរបស់ Android device ដូចជា Internet access permission, phone permission ជាដើម។ |
MainLayout.xml | file នេះពិពណ៌នាអំពី Layout របស់ page។ ដូចនេះរាល់ componentsទាំងឡាយដូចជា textboxes, labels, radio buttons ជាដើម ត្រូវបានបង្ហាញនៅលើ application screen។ |
Activity class | ប្រើសម្រាប់ក្តោបនូវ screen device របស់ application ទាំងមូល ដែលត្រូវការយ៉ាងហោចណាស់ត្រូវមាន class មួយដែល inherits ចេញពី Activity class។ ដូចជា method OnCreate() ត្រូវបាន initiates នៅពេល load នូវ application របស់ layout page។ |
VI. The Android Activity Lifecycle Methods
នៅត្រង់ចំនុចនេះយើងនិងនិយាយអំពី lifecycle methods ដែលត្រូវបានប្រើប្រាស់ជាមួយ Android Activity។ សូមក្រឡេកមើលទៅលើរូបភាពខាងក្រោម ដែលបង្ហាញពី Lifecycle method របស់ Android
- onCreate(savedInstanceState: Bundle?) – method ត្រូវបានគេ called ហៅ នៅពេលដែល activity គឺត្រូវបានគេបង្កើតឡើងមុនដំបូងគេ ហើយវាជាទីតាំងសម្រាប់ initialization tasks។ The method is passed an argument in the form of a Bundle object that may contain dynamic state information (typically relating to the state of the user interface) from a prior invocation of the activity.
- onRestart() – ត្រូវបាន Called នៅពេលដែល activity ត្រូវបាន restart.
- onStart() – ត្រូវាបាន called ឡើងភ្លាមៗបន្ទាប់ពី call នូវ method onCreate() ឬក៏ onRestart() ដែល method នេះបង្ហាញពី activity ដែល user មិនអាចដឹងបាន។ ចំពោះការ callនេះ ត្រូវបាន follow ដោយ method onResume() ប្រសិនបើ activity ផ្លាស់ប្តូរទៅខាងលើបំផុតនៃ activity stack ឬមួយក៏ method onStop() នៅក្នុង event ដែលត្រូវបាន pushed down ដោយ activity ដទៃទៀត។
- onResume() – បង្ហាញពី activity ដែលកំពុងបើកនៅលើ activity stack ដែល user កំពុងតែប្រើប្រាស់វា។
- onPause() – បង្ហាញពី previous activity ដែលវាដំណើរការនៅខាងមុខ activity (foreground activity)។ ការ call method នេះ ធ្វើឡើង follow ទៅតាមការ call ទាំង method onResume() និង method onStop() អាស្រ័យទៅលើ activity ហ្នឹង moves back ទៅកាន់ foreground ឬក៏ invisible។ Steps may be taken within this method to store persistent state information not yet saved by the app. To avoid delays in switching between activities, time consuming operations such as storing data to a database or performing network operations should be avoided within this method. This method should also ensure that any CPU intensive tasks such as animation are stopped.
- onStop() – Activity គឺត្រូវបានបញ្ឈប់។ The two possible scenarios that may follow this call are a call to onRestart() in the event that the activity moves to the foreground again, or onDestroy() if the activity is being terminated.
- onDestroy() – The activity is about to be destroyed, either voluntarily because the activity has completed its tasks and has called the finish() method or because the runtime is terminating it either to release memory or due to a configuration change (such as the orientation of the device changing). It is important to note that a call will not always be made to onDestroy() when an activity is terminated.
- onConfigurationChanged() – Called when a configuration change occurs for which the activity has indicated it is not to be restarted. The method is passed a Configuration object outlining the new device configuration and it is then the responsibility of the activity to react to the change.
បន្ថែមពីលើ lifecycle methods ដែលបានបង្ហាញខាងលើ មានmethods ចំនួនពីរទៀតដែលជាក់លាក់សម្រាប់ saving និង restoring នូវ dynamic state របស់ activity៖
- onRestoreInstanceState(savedInstanceState: Bundle?) – This method is called immediately after a call to the onStart() method in the event that the activity is restarting from a previous invocation in which state was saved. As with onCreate(), this method is passed a Bundle object containing the previous state data. This method is typically used in situations where it makes more sense to restore a previous state after the initialization of the activity has been performed in onCreate() and onStart().
- onSaveInstanceState(outState: Bundle?) – Called before an activity is destroyed so that the current dynamic state (usually relating to the user interface) can be saved. The method is passed the Bundle object into which the state should be saved and which is subsequently passed through to the onCreate() and onRestoreInstanceState() methods when the activity is restarted. Note that this method is only called in situations where the runtime ascertains that dynamic state needs to be saved.
VII. Reference
https://www.tutorialride.com/android/structure-of-android-application.htm
https://www.techotopia.com/index.php/Kotlin_-_Handling_Android_Activity_State_Changes