Copy and rename an Android project in Android Studio

โดย Little Bear on August,03 2018 17.00

วิธีสำเนา Android Application Source Code ไปเป็น Application ใหม่ ลองทำตามขั้นตอนดังนี้

Copy and rename a project

For some lessons, you will need to make a copy of a project before making new changes. You may also want to copy a project to use some of its code in a new project. In either case you can copy the existing project (ExistingProject), and then rename and refactor the new project's (NewProject) components to use the new project's name. (In the instructions below, substitute your actual project names for ExistingProject and NewProject.

1. Copy the project

  1. On your computer's file system (not in Android Studio), make a copy of the ExistingProject directory.
  2. Rename the copied directory to NewProject .

2. Rename and refactor the project components

The old name of the project, ExistingProject, still appears throughout the packages and files in the new copy of your project. Change the file and the package references in your app to the new name, as follows:

  1. Start Android Studio
  2. Click Open an existing Android Studio project.
  3. Navigate to the NewProject directory, select it, and click OK.
  4. Select Build > Clean Project to remove the auto-generated files.
  5. Click the 1:Project side-tab and choose Android from the drop-down menu to see your files in the Project view.
  6. Expand app > java.
  7. Right-click and choose Refactor > Rename. This opens the Rename dialog.
  8. Change existingproject to newproject.
  9. Check Search in comments and strings and Search for text occurrences and click Refactor.
  10. The Find Refactoring Preview pane appears, showing the code to be refactored.
  11. Click Do Refactor. (ปุ่ม Do Refactor อยู่ที่แถบด้านล่าง มองหาตั้งนาน เพิ่งเจอ)
  12. Expand res > values and double-click the strings.xml file.
  13. Change the name="app_name" string to New Project.

3. Update the build.gradle and AndroidManifest.xml files

Each app you create must have a unique application ID, as defined in the app's build.gradle file. Even though the above steps should have changed the build.gradle file, you should check it to make sure, and also sync the project with the gradle file:

  1. Expand Gradle Scripts and double-click build.gradle (Module: app).
  2. Under defaultConfig, check to make sure that the value of the applicationID key has been changed to "". If it has not changed, change it manuall now.
  3. Click Sync Now in the top right corner of the Android Studio window.
    Tip: You can also choose Tools > Android > Sync Project with Gradle File to sync your gradle files.

In addition, some apps include the app name in readable form (such as "New Project" rather than newproject) as a label in the AndroidManifest.xml file.

  1. Expand app > manifests and double-click AndroidManifest.xml.
  2. Find the statement below, and if necessary, change the label if to the string resource for the new app name:


อ่านรายละเอียดต่อได้ที่ Copy and rename a project

Recovering data from a WD Mybook Live 1TB

โดย Little Bear on July,02 2018 23.21

คาดว่า Mainboard ของ WD My Book Live คงจะเสียหายจากฟ้าผ่า หลังจากรื้อเอา harddisk ออกมา ก็หาทางเอาข้อมูลออก

เนื่องจากไม่มีเครื่องคอมตั้งโต๊ะเหลืออยู่อีกแล้ว เลยสั่ง Orico Harddisk Dock มา 1 ตัว

หลังจากเสียบ harddisk ลงไปก็มองเห็น harddisk แต่ mount ไม่ได้

จำเป็นต้องใช้ fuseext2 ตามนี้


sudo apt-get install fuseext2 parted
sudo parted -l

มองเห็น partition /dev/sdb4

สั่ง mount disk

sudo mkdir -p ~/WD
sudo fuseext2 -o ro -o sync_read /dev/sdb4 ~/WD

แล้วก็หาทาง copy data ออกมา

อ่านต่อได้ที่ Recovering data from a WD Mybook Live 2TB / 3TB

How can I convert a part of Java source file to Kotlin?

โดย Little Bear on July,02 2018 00.32

CMD+SHFT+ALT+K is the easiest way to convert from Java to Kotlin in Android Studio


Mount Network Drive Using CIFS on Mac OSX

โดย Little Bear on March,18 2018 09.34

เกิดปัญหาจากการ mount network drive บน Finder ของ Mac OSX เมื่อใช้ SMB ที่ป้อนรหัสแล้วไม่ผ่าน เลยเปลี่ยนมาเป็น CIFS ที่ป้อนรหัสเดียวกัน กลับผ่านเฉยเลย

open 'cifs://user:password@server/share'

หาก mount ด้วย SMB เมื่อป้อนรหัสแล้วไม่ผ่าน (ยังไม่รู้ว่าเกิดอะไรขึ้น) แต่หาก mount ด้วย CIFS ด้วยรหัสเดียวกัน จะผ่าน เมื่อเปิดดู Info ก็จะบอกว่าเป็น smb เหมือนกัน

open 'smb://user:password@server/share'

ที่มา How can I mount an SMB share from the command line? , Make your AFP NAS more responsive

ทำให้ Web App คุยกับ Android ผ่านทาง WebView - Building Web Apps in WebView

โดย Little Bear on January,30 2018 12.00

Enabling JavaScript

JavaScript is disabled in a WebView by default. You can enable it through the WebSettings attached to your WebView. You can retrieve WebSettings with getSettings(), then enable JavaScript with setJavaScriptEnabled().

WebView myWebView = (WebView) findViewById(;
WebSettings webSettings = myWebView.getSettings();

Binding JavaScript code to Android code

public class WebAppInterface {
    Context mContext;

    /** Instantiate the interface and set the context */
    WebAppInterface(Context c) {
        mContext = c;

    /** Show a toast from the web page */
    public void showToast(String toast) {
        Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();

Bind class Android

WebView webView = (WebView) findViewById(;
webView.addJavascriptInterface(new WebAppInterface(this), "Android");

Coding in javascript

<a href="javascript:void(0)" onclick="showAndroidToast('Hello Android!')">Click for android</a>
<script type="text/javascript">
function showAndroidToast(toast) {
    if (typeof Android=="object") Android.showToast(toast);
    else console.log("App not run on Android")

ที่มา Building Web Apps in WebView

551 items|« First « Prev 5 6 (7/111) 8 9 Next » Last »|