2016-12-28 49 views
-7

我正忙於爲Android創建應用程序。我正在使用Android Studio。但是,這個應用程序有很多活動(類)和相應的佈局文件。而當我更新我的應用程序時,這些類和佈局文件將會增長得更多。我知道Android Studio中的一些活動或佈局沒有設置限制,但是,我非常擔心我的應用程序會隨着時間的增長而崩潰,並且會創建更多的活動和佈局。我的應用程序是關於汽車聲音。用戶將選擇製造商,然後選擇製造商的型號,然後將他/她帶到特定型號,在那裏他/她可以播放該車的汽車聲音。我的Android應用程序會崩潰嗎?

這裏是我的Java類的圖像(活動):

Java class

這裏是我的佈局文件(XML佈局):

enter image description here

我很擔心我的應用程序最終會崩潰,經過一段時間和幾個更新,因爲我將添加大約30到40個類和佈局。

如果任何人都可以建議替代我的方法,那也將不勝感激!

+0

分享您的錯誤日誌。 –

+0

@IntelliJAmiya - 正如我所說的,我擔心我的應用隨着時間的推移而崩潰。它現在運行得非常好,但是在我未來的更新中,我添加了更多的汽車聲音(類和佈局),如果我的應用稍後會崩潰,我寧願有另一種方法,以節省時間。 – MarkPrescher

+0

只有擁有許多活動或佈局文件,應用程序纔會崩潰。如果代碼設計得不好並且沒有完全測試,應用程序會崩潰 – 0xDEADC0DE

回答

0

不用擔心,所添加的類和佈局越多,最終的apk會變得越大。但是內存消耗運行時間將是相同的,因爲一次只創建活動活動(及其佈局)。

0

應用程序崩潰不依賴於類或佈局文件的數量。檢查應用程序中的內存泄漏。

爲了避免應用程序崩潰,只需在代碼中放置try/catch塊即可。然後,即使運行時發生任何錯誤,您的應用程序也不會崩潰。例如,

try { 

//your code 

} catch (Exception e){ 
Log.e("Error",""+e.toString()); 
} 

希望它可以幫助一點!

+0

非常感謝! – MarkPrescher

+0

雖然你說的應用程序不會崩潰,但這隻會隱藏應用程序質量相當低的事實 – 0xDEADC0DE

+0

@ 0xDEADC0DE非常贊同!但它仍然比應用崩潰更好。你可以隨時更新錯誤修復的應用程序。 –

1

只有擁有大量活動,您的應用程序纔會崩潰,因爲只有活動活動會消耗資源,但如果它會非常巨大,那麼您應該考慮更改方法。例如,可能的原因之一有大量的活動可能是你正在製作靜態視圖(如果你是新手),如果你這樣做,你應該考慮創建一個佈局並動態地在該佈局中加載數據。這會減少活動的數量。

+0

我是Android開發的新手。那麼我可以使用什麼替代方法?或者我應該在Google上看什麼,或者可以提供任何與教程鏈接?謝謝 – MarkPrescher

+0

您可以使用的一種方法是,您可以使用服務器並隨時將您的內容添加到服務器端的數據庫中。在您的android應用程序中,您可以從服務器獲取數據並在您創建的佈局中加載該數據。通過使用這種方法,您不必爲您想要顯示的每一組數據都創建一個新的活動。但要做到這一點,你還必須學習服務器端的東西。 – DarkShadow

+0

是的。我將不得不閱讀與服務器相關的東西,但謝謝! – MarkPrescher

1

由於代碼的複雜性,您的代碼不應該崩潰,但隨着類的數量增長,它可能會慢慢變得無法管理。

沒有看看你的實際代碼,很難判斷你應該如何重構來簡化,但你可能會發現使用enum是一個有用的工具。

enum Manufacturer { 
    BMW, 
    AstonMartin, 
    Audi, 
    Jaguar, 
    MercedesBenz, 
    Porsche 
} 

enum Car { 
    AudiRS5_2013(Manufacturer.Audi), 
    AstonMartinV12VantageS_2014(Manufacturer.AstonMartin); 
    private final Manufacturer manufacturer; 

    Car(Manufacturer manufacturer) { 
     this.manufacturer = manufacturer; 
    } 
} 
0

如果您擔心需要進行很多活動,您可以將工作委託給片段。這樣你的應用程序將更具可擴展性。

這項活動本身並沒有太大麻煩。你應該真正擔心的是內存泄漏。如果您使用IntentServices,Coursors,PopupDialogs和AsyncTasks,這是常見的。

+0

非常感謝!我會將此視爲巨大的考慮! – MarkPrescher

0

好吧,從來沒有麻煩麻煩,直到麻煩你。你的應用不會崩潰。但是,如果資源過多,* .apk的大小將越來越大。