我的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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...