我的Android第二章:Android目錄結構

来源:http://www.cnblogs.com/xiaotaojing/archive/2016/11/16/6068069.html
-Advertisement-
Play Games

嗨!各位,小編又和大家分享知識啦,在昨天的博客筆記中小編給大家講解瞭如何去配置Android工具以及SDK中的一些配置,那在今天的學習小編會帶給大家哪些Android知識呢?首先我們看一下今天的學習目錄吧。 知識一:瞭解Android項目目錄結構 知識二:Android的配置文件(清單文件) 知識三 ...


     嗨!各位,小編又和大家分享知識啦,在昨天的博客筆記中小編給大家講解瞭如何去配置Android工具以及SDK中的一些配置,那在今天的學習小編會帶給大家哪些Android知識呢?首先我們看一下今天的學習目錄吧。

    知識一:瞭解Android項目目錄結構

    知識二:Android的配置文件(清單文件)

    知識三:瞭解DDMS的作用

    知識四:adb執行命令和配置

    知識五:簡單案例(打電話)

       Android項目的目錄結構

  • Activity:應用被打開時顯示的界面
  • src:項目代碼
  • R.java:項目中所有資源文件的資源id,在文件下可以通過id讀取到layout中的文件信息,相當於程式的資源指針,添加任意資源都會自動生成一個相應的資源id,這文件不要手動將它刪除
  • Android.jar:Android的jar包,導入此包方可使用Android的api
  • libs:導入第三方jar包
  • assets:存放資源文件,比方說mp3、視頻文件
  • bin:存放編譯打包後的文件
  • res:存放資源文件,存放在此文件夾下的所有資源文件都會生成資源id
  • drawable:存放圖片資源
  • layout:存放佈局文件,把佈局文件通過資源id指定給activity,界面就會顯示出該佈局文件定義的佈局
  • menu:定義菜單的樣式
  • Strings.xml:存放字元串資源,每個資源都會有一個資源id
  • AndroidManifest.xml:是你整個Android項目的配置文件,定義的四大組件都要在該文件下進行註冊,還有使用應用許可權的添加聲明

       Android的配置文件(清單文件)

  • 指定應用的包名

    package="com.itheima.helloworld"
    
    • data/data/com.itheima.myFirstAndroid(上面代碼指定的包名)
    • 應用生成的文件都會存放在此路徑下
  • Android的四大組件在使用前全部需要在清單文件中配置

  • 配置對整個應用生效
  • 配置對該activity生效

    DDMS

  • Dalvik debug monitor service
  • Dalvik調試監控服務:在該調試控制器中可以看到你對應的設備連接信息,還有你與哪些設備建立了連接操作

   adb執行命令和配置

         Android debug bridge:安卓調試橋:adb是Eclipse與伺服器設備建立的連接橋梁,adb程式能夠可以給任何一款Android設備建立連接,在adb程式還可以獲取你當前連接設備的所有信息

        在啟用adb程式時我們可以方便快捷的使用如下命令

  • adb start-server:啟動adb進程
  • adb kill-server:殺死adb進程
  • adb devices:查看當前與開發環境連接的設備,此命令也可以啟動adb進程
  • adb install XXX.apk:往模擬器安裝apk
  • adb uninstall 包名:刪除模擬器中的應用
  • adb shell:進入linux命令行
  • ps:查看運行進程
  • ls:查看當前目錄下的文件結構
  • netstat -ano:查看占用埠的進程 

 哈哈,可能有些學者已經遇到問題了,就是在打開DOM視窗執行命令時候怎麼執行不了呢?

    adb配置

    沒關係,問題好解決,只需要配置一下adb的環境變數即可

   首先打開  控制面板-->系統和安全-->系統 -->高級設置-->環境變數 -->Path變數

   點擊編輯:首先要找到你的sdk中存放adb.exe文件目錄

 

  獲取該目錄的路徑

:演示路徑:F:\AndroidStudy\adt-bundle-windows-x86_64-20140702\sdk\platform-tools

  然後將該路徑複製到你的Path變數值中即可

  簡單案例(打電話)

   功能:用戶輸入一個號碼,點擊撥打按鈕,啟動系統打電話的應用把號碼撥打出去

  1.新建一個Android工程   

  

  2.點擊res 目錄下的layout文件打開activity_main.xml 配置文件

   3.生成幾個控制項,一:文本編輯控制項、二:按鈕控制項

   activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" 
    android:orientation="vertical"
    >
    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="請輸入你要撥打的電話號碼" />
    
    <EditText 
        android:id="@+id/edit_Test"
         android:layout_width="match_parent"
        android:layout_height="wrap_content"
        
        />
     <Button 
         android:id="@+id/btn_cell"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text="打電話"
         />
</LinearLayout>

   註1:組件必須設置寬高,否則不能通過編譯

android:layout_width="wrap_content"
android:layout_height="wrap_content"

    為了方便我們控制佈局內容我們將xml中的 <RelativeLayout ></RelativeLayout >改為了<LinearLayout></LinearLayout>

   以下是控制項生成的效果圖

   註2:如果相對應的控制是自己手動生成的,那麼必須指定一個控制項Id  android:id="@+id/textView1" 否則運行出錯

android:id="@+id/textView1"

  

  4.編寫我們的Java代碼

  點擊src 下的MainActivity.java文件 ,編寫如下代碼

package com.example.myfirstandroid;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;


public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       //獲取一個btn_cell按鈕對象
       Button btn = (Button)this.findViewById(R.id.btn_cell);
       //給該按鈕對象綁定一個按鈕監聽事件
       btn.setOnClickListener(new MyListener());
       
    }
    
    //編寫一個監聽內部類實現OnClickListener監聽介面
    class MyListener implements OnClickListener{

        @Override
        //重寫該介面的單擊事件方法
        public void onClick(View v) {
            //獲取編輯文本對象
            EditText editTest = (EditText)findViewById(R.id.edit_Test);
            //獲取該編輯文本的內容
            String number = editTest.getText().toString() ;
            
            //獲取一個系統內置的一個打電話的功能,告訴系統我們要執行打電話操作
            //獲取一個創建圖對象
            Intent intent = new Intent();
            //將動作封裝到創建圖中
            intent.setAction(Intent.ACTION_CALL);
            //設置打給誰操作
            intent.setData(Uri.parse("tel:" + number));
            
            //以上執行完畢將該動作告訴系統
            startActivity(intent);
        }
        
    }
}

 

    以上簡單小程式代碼已經寫完了,趕緊運行試一下吧! 

     總結:今天小編的Android知識點已經分享完了,今天的學習內容不多只是大致理解一下Android程式基本結構,該案例中也運用了內部類的定義,如果不懂內部類操作的學者也可以參照一下小編編寫的內部類學習筆記也許會幫助到你哦!地址:http://www.cnblogs.com/xiaotaojing/p/6069184.html 因為內部類的定義在Android的開發中非常常見也經常使用,如果有某些學者對該篇比較有不懂的或者有疑惑的地方可以給小編留言哦!謝謝

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 開發環境: macOS 10.12.1 Xcode 8.1 Qt 5.8 iPhone 6S+iOS 10.1.1 源代碼: 我在 Qt 程式里指定了資料庫的名稱來創建資料庫,在 Win10、Android、macOS 下正常運行,但是在蘋果手機上報錯。 QSqlDatabase db; db.se ...
  • 轉載請標明出處:http://www.cnblogs.com/zhaoyanjun/p/6074887.html1 本文出自 "【趙彥軍的博客】" 反射機制是什麼 反射機制是在運行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個對象,都能夠調用它的任意一個方法和屬性;這種動態獲 ...
  • - (BOOL) isBlankString:(NSString *)string { if (string == nil || string == NULL) { return YES; } if ([string isKindOfClass:[NSNull class]]) { return Y ...
  • 開源項目 wechat-weapp-gank - 微信小程式版Gank客戶端 wechat-dribbble - 微信小程式-Dribbble wechatApp-demo - 微信小程式 DEMO weapp-ide-crack - 微信小應用資源破解 API - API 文檔 weapp-qui ...
  • 在eclipse中導入android項目,項目正常沒有任何錯誤,但是運行時候會報錯,(clean什麼的都沒用了。。。。。)如圖: 百度大神大多說是jdk的問題,解決: 右鍵項目—Properties如下圖: 我的原來是1.8,換成1.7點擊Apply—ok。解決。 備忘,希望給大家帶來幫助,有錯誤請 ...
  • 開發項目功能變數名稱想怎麼換就怎麼換,就是這麼任性! 這是一個很有意思的小工具! 這是一個方便開發人員和測試人員的小工具!! 吐槽: 一直在做Android開發,一直總有一個問題存在:做自己公司的apk開發時,線上包和測試包不可兼得~總是在 卸載、安裝、卸載、安裝。。。的迴圈操作。很是麻煩,而且另外一個不得 ...
  • 一、問題來源 一直沒有搞清楚NSString、NSArray、NSDictionary……屬性描述關鍵字copy和strong的區別,看別人的項目中屬性定義有的用copy,有的用strong。自己在開發中也是沒有認真的去研究,至於使用copy還是用strong完全是根據心情隨性而為,也一直沒有出什麼 ...
  • 【一】常見用法 最原始的用法,耦合度低,但是不能統一管理。我們需要在每一個控制器都寫以下代碼,很繁瑣,以後項目修改起來更繁瑣,得一個控制器一個控制器的去定位、修改。 1.1 使用預設刷新(耦合度底,但是想統一修改起來特別麻煩) 1.2 自定義刷新(耦合度底,但是想統一修改起來特別麻煩) 【二】正確用 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...