java "नमस्ते दुनिया" संभव के रूप में कुछ फ़ाइलों के साथ Android एप्लिकेशन, कोई आईडीई, और केवल पाठ संपादक




windows android-studio (4)

.Apk एंड्रॉइड ऐप का उत्पादन करने के लिए न्यूनतम जावा स्रोत कोड फ़ाइलों / प्रोजेक्ट फ़ाइलों की सबसे छोटी संख्या क्या है?

Android Apk file classes.dex और AndroidManifest.xml को बनाने के लिए केवल इन 2 फाइलों की आवश्यकता है, पूरी जानकारी के लिए इस ब्लॉग पोस्ट को देखें।

अब तक का सबसे छोटा apk आकार 678 बाइट्स है। इस repo

लगभग सभी भाषाओं में जो मैंने उपयोग किया है (पायथन, सी, सी ++, आदि), केवल एक पाठ संपादक के साथ "हैलो वर्ल्ड" एप्लिकेशन लिखना संभव है और इसे कमांड-लाइन (व्याख्या की गई भाषा) या संकलन / निर्माण से चलाएं यह कमांड-लाइन (संकलित भाषाओं) से है, उदाहरण के लिए cl.exe helloworld1.cpp

दूसरी ओर, हर बार जब मैं एक एंड्रॉइड ऐप कर रहा हूं, मुझे एंड्रॉइड स्टूडियो (जो मेरी मशीन पर धीमा है) का उपयोग करने की आवश्यकता है, आईडीई के साथ एक नया प्रोजेक्ट बनाएं, आदि।

प्रश्न: .apk एंड्रॉइड ऐप का उत्पादन करने के लिए न्यूनतम जावा स्रोत कोड फ़ाइलों / प्रोजेक्ट फ़ाइलों की सबसे छोटी संख्या क्या है? कमांड-लाइन से इसका निर्माण कैसे करें? (और आईडीई खोलने के लिए कभी नहीं )

एनबी: मैंने एंड्रॉइड के लिए कई हैलो दुनिया पढ़ी है लेकिन उनमें से सभी में आईडीई का उपयोग करना शामिल है।

NB2: मैं जावा में लिखे गए मानक ऐप की तलाश कर रहा हूं, न कि किवी जैसे समाधान।

NB3: यहां तक ​​कि अगर एक आईडीई शायद एंड्रॉइड ऐप को प्रोग्राम करने के लिए अधिक सुविधाजनक है, तो मुझे कोई तकनीकी कारण नहीं दिखाई देता है जिसके लिए कई फाइलों को संकलित / निर्माण करना बिल्कुल एक जीयूआई के साथ आईडीई / प्रोग्रामिंग की आवश्यकता होगी । कुछ लोग (मेरे जैसे) केवल कमांड-लाइन और टेक्स्ट एडिटर पसंद करते हैं, और इस तरह का आईडीई-मुक्त समाधान उपयोगी होगा।

NB4: मैं विंडोज प्लेटफॉर्म पर काम कर रहा हूं, मैंने इस जवाब के आधार पर यहां "हैलो वर्ल्ड विदाउट आईडीई" जीथब रेपो शुरू किया है , लेकिन मुझे इस तरह की कुछ समस्याएं हैं। दूसरी ओर, वहाँ इस्तेमाल किया विधि पदावनत किया जा रहा है ...


एंड्रॉइड ऐप को एक बार भी इंस्टॉल करने / खोलने के बिना (यह एक शांत आईडीई है, लेकिन यह मेरे जैसे कुछ लोग सिर्फ एक टेक्स्ट एडिटर + कमांड लाइन को पसंद करते हैं) बनाने के लिए एक रेडी-टू-यूज़ विधि है । आपको Google Play Store पर जाने के लिए तैयार, अंत में पूरी तरह से हस्ताक्षरित / संरेखित एपीके मिलेगा।

जॉनगूडविन के answer का पूरा श्रेय, मैंने इसे यहाँ एक ही createproject.bat बैच के साथ संक्षेप में प्रस्तुत किया है जो सब कुछ करता है।

आवश्यक शर्तें ( answer बारे में अधिक जानकारी के लिए answer देखें): आपको इन उपकरणों को स्थापित करने की आवश्यकता है:

  • जावा JDK

  • Android एसडीके उपकरण

  • अपाचे चींटी

अब अपने सिस्टम के अनुसार अपना APPNAME , VENDORNAME सेट करने के लिए इस createproject.bat की पहली पंक्तियों को संशोधित करें, और अपने सिस्टम के अनुसार adb.exe , keytool.exe आदि का मार्ग बदलें।

फिर createproject.bat । यह एक नया फ़ोल्डर helloworld बना देगा। आपको कुछ .bat फाइलें .bat जो आपके ऐप का निर्माण करेंगी!

createproject.bat

@echo off
SET APPNAME=helloworld
SET VENDORNAME=demo
SET SIGNKEYPASSWORD=abcdef12
SET ANTBATPATH="..\..\apache-ant-1.9.9-bin\bin\ant.bat"
SET ADBPATH="C:\Users\User\AppData\Local\Android\android-sdk\platform-tools\adb.exe"
SET KEYTOOLPATH="C:\Program Files\Java\jdk1.8.0_151\bin\keytool.exe"
SET JARSIGNERPATH="C:\Program Files\Java\jdk1.8.0_151\bin\jarsigner.exe"
SET ZIPALIGNPATH="C:\Users\User\AppData\Local\Android\android-sdk\build-tools\19.1.0\zipalign.exe"
SET ANDROIDBATPATH="C:\Users\User\AppData\Local\Android\android-sdk\tools\android.bat"

call %ANDROIDBATPATH% create project --target "android-16" --path %APPNAME% --activity %APPNAME% --package com.%VENDORNAME%.%APPNAME%

(
echo call %ANTBATPATH% debug
echo copy bin\*debug.apk .
) > %APPNAME%\1makedebug.bat


echo %ADBPATH% logcat > %APPNAME%\2adb_logcat.bat
echo %ADBPATH% devices > %APPNAME%\2adb_devices.bat
echo %ADBPATH% install -r %APPNAME%-debug.apk > %APPNAME%\2adb_install.bat
echo %ADBPATH% shell > %APPNAME%\2adb_shell.bat

(
echo call %ANTBATPATH% release
echo %JARSIGNERPATH% -sigalg SHA1withRSA -digestalg SHA1 -keystore my.keystore "bin\%APPNAME%-release-unsigned.apk" app -storepass %SIGNKEYPASSWORD%
echo %ZIPALIGNPATH% 4 "bin\%APPNAME%-release-unsigned.apk" "%APPNAME%-release.apk"
echo pause
) > %APPNAME%\3makerelease_signed.bat

%KEYTOOLPATH% -genkey -keystore %APPNAME%\my.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias app -dname "cn=Unknown, ou=Unknown, o=Unknown, c=Unknown" -storepass %SIGNKEYPASSWORD% -keypass %SIGNKEYPASSWORD%

echo Finished.
pause

यदि आप Android के विकास को बहुत जटिल पा रहे हैं और एक सरल समाधान चाहते हैं - मैं सुझाव दूंगा कि फड़फड़ाना।

आप ऐसे ऐप्स लिख सकते हैं जो समझने में आसान हैं और Android या IPhone पर चलेंगे। यह डार्ट भाषा का उपयोग करता है जिसमें जावा के कई समानताएं हैं।

यहां एक हेल्लो वर्ल्ड ट्यूटोरियल है जो एंड्रॉइड ऐप बनाने के लिए विंडोज़ में आईडीई और कमांड लाइन का उपयोग करता है।

https://www.youtube.com/watch?v=CEPCGXQ7IQg


हाँ, आप आसानी से कमांड लाइन से यह सब कर सकते हैं (कोई IDE शामिल नहीं है, मैं वादा करता हूं)।
यह पुराने वफादार अपाचे चींटी का उपयोग करता है। यह Gradle उपयोग नहीं करता है, जो अधिक काम लेता है।

संक्षेप में

आप जो टाइप कर रहे हैं (एक एपीके का उत्पादन करने के लिए सिर्फ 2 लाइनें ):

    android create project --target "android-16" --path basj --activity TestActivity --package com.android.basj 

(यह एक Apache Ant बिल्ड फ़ाइल का निर्माण करता है जिसे बिल्ड. build.gradle फ़ाइल कहा जाता है जो build.gradle फ़ाइल की तरह है। अब कुछ कोड लिखें लेकिन TestActivity.java पहले से ही है और संकलन करेगा)

    ant debug

सेट अप

( नोट : " android.bat " कमांड का निर्माण टूल्स v26 के बाद से किया गया है , इसलिए एक पुराने एक का उपयोग करें (नीचे लिंक देखें), इस मामले में हटाए गए का अर्थ है कि पूरी तरह से हटा दिया गया है! { शरारती Google })।

  1. जावा JDK स्थापित करें यदि पहले से स्थापित नहीं है (आप उदाहरण के लिए jdk-8u151-windows-x64.exe का उपयोग कर सकते हैं), और सुनिश्चित करें कि JAVA_HOME पर्यावरण चर परिभाषित किया गया है जैसे:

    JAVA_HOME = C: \ Program Files \ Java \ jdk1.8.0_112
    JAVA_PATH = C: \ Program Files \ Java \ jre1.8.0_112 \ bin

JDK जावा डेवलपमेंट किट है।
JRE जावा रन-टाइम एनवायरनमेंट है।

  1. Android SDK Tools स्थापित करें (जैसे installer_r24.4.1-windows.exe , इस उत्तर को देखें) यदि पहले से नहीं किया गया है, और फिर SDK प्रबंधक GUI में, सब कुछ रद्द करें और "Android SDK Build-Tools" चुनें (जैसे Android SDK Build-Tools 19.1 ) + एक (या कई) प्लेटफ़ॉर्म (जैसे Android 4.1.2 (API 16) JELLY_BEAN )। यह साबित करने के लिए कि आपको Android Studio आवश्यकता नहीं है, इसे डाउनलोड नहीं किया जाएगा! (केवल एसडीके)।

  2. Apache Ant डाउनलोड करें (उदाहरण के लिए apache-ant-1.9.9-bin.zip )

विस्तार

Android SDK का उपयोग करके कमांड लाइन से एक प्रोजेक्ट बनाने के लिए:

अपना प्रोजेक्ट लगाने के लिए एक जगह तय करें:

cd c:\android
mkdir antTest
cd antTest

कमांड चलाएँ:

C:\Android\sdk1\tools\android create project --target "android-16" --path basj --activity TestActivity --package com.android.basj 
              ^
              |
--------------+ (here's where I keep an old version of tools (version 25 in my case)

यहां निर्देशिका संरचना बनाई गई है (और आपके द्वारा बनाई जाने वाली सभी फाइलें):

C:.
+---basj
    +---bin
    +---libs
    +---res
    ¦   +---drawable-hdpi
    ¦   +---drawable-ldpi
    ¦   +---drawable-mdpi
    ¦   +---drawable-xhdpi
    ¦   +---layout
    ¦   +---values
    +---src
        +---com
            +---android
                +---basj

परियोजना के विस्तृत उत्पादन:

Created project directory: C:\Android\antTest\basj
Created directory C:\Android\antTest\basj\src\com\android\basj
Added file C:\Android\antTest\basj\src\com\android\basj\TestActivity.java
Created directory C:\Android\antTest\basj\res
Created directory C:\Android\antTest\basj\bin
Created directory C:\Android\antTest\basj\libs
Created directory C:\Android\antTest\basj\res\values
Added file C:\Android\antTest\basj\res\values\strings.xml
Created directory C:\Android\antTest\basj\res\layout
Added file C:\Android\antTest\basj\res\layout\main.xml
Created directory C:\Android\antTest\basj\res\drawable-xhdpi
Created directory C:\Android\antTest\basj\res\drawable-hdpi
Created directory C:\Android\antTest\basj\res\drawable-mdpi
Created directory C:\Android\antTest\basj\res\drawable-ldpi
Added file C:\Android\antTest\basj\AndroidManifest.xml
Added file C:\Android\antTest\basj\build.xml
Added file C:\Android\antTest\basj\proguard-project.txt

Http://ant.apache.org/ से Apache Ant डाउनलोड करें।

इस ट्यूटोरियल को सेटअप के लिए देखें: http://www.vogella.com/tutorials/ApacheAnt/article.html

इस ट्यूटोरियल को भी देखें: http://blog.vogella.com/2011/03/16/creating-android-applications-via-the-command-line-ant/

अपना कोड (हैलो वर्ल्ड) लिखें।

इस कमांड को चलाएं और आपको दूसरी तरफ एक Android Apk मिलता है (जिसे TestActivity-debug.apk कहा जाता है):

ant debug

अरे, आप एक Android APK मिल गया!
नई संरचना के साथ जोड़ा गया:

C:.
├───bin
   ├───classes
      └───com
          └───android
              └───basj
   ├───dexedLibs
   └───res
       ├───drawable-hdpi
       ├───drawable-ldpi
       ├───drawable-mdpi
       └───drawable-xhdpi
├───gen
   └───com
       └───android
           └───basj

एक अंतिम निर्माण के लिए:

ant release

यदि आपकी रुचि Ant build.xml , या DEX फ़ाइलों के एक अधिक व्यापक उदाहरण में है, और Android के गहरे कामकाज here दिखते here

कैसे पहले से संकलित APK पर हस्ताक्षर करने के लिए

पहले से संकलित एपीके और this भी हस्ताक्षर करने का तरीका देखें
@ For3st के जवाब से यहाँ उस पोस्ट का एक प्रासंगिक अंश है:

मैनुअल प्रक्रिया:

चरण 1: उत्पन्न कीस्टोर (केवल एक बार)

आपको एक बार कीस्टोर उत्पन्न करने और अपने unsigned APK पर हस्ताक्षर करने के लिए उपयोग करने की आवश्यकता है keytool द्वारा दिए गए keytool उपयोग %JAVA_HOME%/bin/ में पाया गया

keytool -genkey -v -keystore my.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias app

चरण 2 या 4: Zeepign

zipalign जो कि Android SDK द्वारा प्रदान किया गया एक उपकरण है, जैसे कि %ANDROID_HOME%/sdk/build-tools/24.0.2/ में %ANDROID_HOME%/sdk/build-tools/24.0.2/ वाला एक अनिवार्य अनुकूलन चरण है यदि आप Play Store पर apk अपलोड करना चाहते हैं।

zipalign -p 4 my.apk my-aligned.apk

नोट: पुराने jarsigner का उपयोग करते jarsigner आपको हस्ताक्षर करने के बाद jarsigner करने की आवश्यकता होती है। जब आप इस नए apksigner विधि का उपयोग कर रहे हैं, तो आप इसे हस्ताक्षर करना (भ्रमित करना, मुझे पता है)। apksigner से पहले zipalign को आमंत्रित करना ठीक काम करता है क्योंकि apksigner संरेखण और संपीड़न ( jarsigner विपरीत) को संरक्षित करता है

आप के साथ संरेखण को सत्यापित कर सकते हैं :

zipalign -c 4 my-aligned.apk

चरण 3: हस्ताक्षर करें और सत्यापित करें

24.0.2 और पुराने उपकरणों का उपयोग करना

jarsigner उपयोग करें, जो कि jarsigner तरह, jarsigner वितरण %JAVA_HOME%/bin/ में पाया जाता है और इसे इस तरह उपयोग करता है:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my.keystore my-app.apk my_alias_name

और के साथ सत्यापित किया जा सकता है

jarsigner -verify -verbose my_application.apk

24.0.3 और नए बिल्ड-टूल्स का उपयोग करना

Android 7.0 APK Signature Scheme v2 पेश करता है, एक नई ऐप-साइनिंग स्कीम जो एपीपी फाइलों में अनधिकृत बदलावों के खिलाफ तेज ऐप इंस्टॉल समय और अधिक सुरक्षा प्रदान करती है (अधिक जानकारी के लिए here और here देखें)। इसलिए, Google ने अपना खुद का apksigner साइनर लागू किया है, जिसका नाम है: apksigner (duh!) स्क्रिप्ट फ़ाइल %ANDROID_HOME%/sdk/build-tools/24.0.3/ ((.jar /lib in /lib सबफ़ोल्डर में है) में मिल सकती है। इसे इस तरह उपयोग करें:

apksigner sign --ks my.keystore my-app.apk --ks-key-alias alias_name

और इसके साथ सत्यापित किया जा सकता है:

apksigner verify my-app.apk




android-gradle