as r.java文件目录_Android必备:Android项目的目录结构

本文介绍了Android应用程序的基本组成部分,并详细解释了Android开发IDE Intellij的使用,包括项目目录结构及其各部分的作用,如AndroidManifest.xml文件、src目录、res目录等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇我们了解了Android应用程序组成, 对Android应用开发中的几大组件做了基础的认识,接下来我们就开始正式的进入Android的开发世界,常用的Android开发IDE有 eclipse、Intellj和Android Studio等,每个人的习惯不同,我个人喜欢使用的是Intellij,Intellij Community Edition 13.1.4默认集成了Android插件,本篇的示例也是基于此版本,具体的Intellij使用请参阅:官方指南。

首先我们新建一个Android module,helloworld,这是intellij自动生成的Android项目目录结构,如下图:

45b439d350875a4aa067f2e4a2a8290a.png

我们看到,在初始的项目中,生成了许多目录,每个目录下面也存在或多或少的子目录,接下来我们根据目录的重要程度依次进行说明。

gen:此文件夹是android目录特有的,由android内部维护,其中的R.java文件由android自动生成,只读,不建议修改,我们在 res目录下存放的资源文件都会在R.java中生成唯一的id,BuildConfig.java文件是新版SDK添加,主要是用于android自动 检查代码, 不断调试,Manifest.java具体作用不是很清楚,不过应该与AndroidManifest.xml文件有关。

AndroidManifest.xml:Android应用程序的清单文件,应用程序中所有的Activity、Service、权限等都需要在此文件中声明与注册。

src:用于存放应用程序的源代码,在Android开发中,我们的编码过程在此目录中进行。

res:用于存放应用程序开发中用到的资源文件,这里面存放的所有资源都会在R.java中生成相应的资源id。

drawable:用于存放应用程序中的图标文件,其中不同的drawable文件夹对应不同分辨率的文件,有超清、高、中、低等分辨率,不同后缀命名的文件夹保证了应用在不同设备上的适配。

layout:用于存放应用程序的布局文件,文件格式为xml,在Android开发中,不同的Activity一般对应不同的xml文件。

values:用于存放一些公共的属性定义文件,如strings.xml用于字符串的定义,color.xml用于颜色的定义,style.xml用于样式的定义,主要作用是能够使程序适用国际化。

bin:包含生成过程中ADT生成的文件,代码编译后生成的文件,android程序的安装包.apk文件也会在此目录生成。

libs:用于存放应用开发中使用到的第三方jar包。

External Libraries:此目录指向AndroidSDK,提供开发过程中用到的所有API函数库。

其它的一些文件,诸如:ant.properties和build.xml用户项目的快速构建、local.properties和project.properties标识项目的配置信息等,因开发工具或构建工具的不同也或多或少存在差异,这里不在介绍。

是因为调用这个方法,报的上面这个错,请帮我分析根因,方法如下: def download_AG_app(self, driver, app_name, package_name): market_package = "com.huawei.appmarket" try: for i in range(2): driver.press_keycode(187) try: driver.find_element(By.ID, 'com.huawei.android.launcher:id/clear_all_recents_image_button').click() except: pass driver.press_keycode(3) except: pass time.sleep(10) driver.activate_app(market_package) time.sleep(10) self.click_element_with_swipe(driver, target_id='com.huawei.appmarket:id/enter_button', target_text='暂不安装') self.click_element_with_swipe(driver, target_id='android:id/button2', target_text='以后再说') # self.swipe_up(driver, swipe_times=3) driver.find_element(By.ID, 'com.huawei.appmarket:id/fixed_search_view').click() time.sleep(3) src_text = driver.find_element(By.ID, "com.huawei.appmarket:id/search_src_text") src_text.set_text(app_name) time.sleep(3) driver.find_element(By.ID, 'com.huawei.appmarket:id/hwsearchview_search_text_button').click() time.sleep(3) result1 = self.click_element_with_swipe(driver, target_id='com.huawei.appmarket:id/ItemTitle',target_text=f'{app_name}', max_swipe=5) # 可以在应用市场搜索到该应用 if result1 == True: time.sleep(5) # 场景1:应用未安装 result2= self.click_element_with_swipe(driver, target_id='com.huawei.appmarket:id/hwprogressbutton_percentage_text_view',target_text='安装') if result2 == True: time.sleep(90) result3 = self.click_element_with_swipe(driver,target_id='com.huawei.appmarket:id/hwprogressbutton_percentage_text_view',target_text='打开') # 应用规定时间内安装完成 if result3 == True: time.sleep(5) self.click_element_with_swipe(driver,target_id='com.android.permissioncontroller:id/permission_allow_button',target_text='允许') else: # 应用规定时间内未安装完成,点击暂停 driver.find_element(By.ID, 'com.huawei.appmarket:id/detail_download_button').click() self.go_back(driver, times=3) # 场景2:应用已存在 else: time.sleep(30) result4 = self.click_element_with_swipe(driver,target_id='com.huawei.appmarket:id/hwprogressbutton_percentage_text_view', target_text='打开') if result4 == True: time.sleep(5) self.click_element_with_swipe(driver, target_id='com.android.permissioncontroller:id/permission_allow_button',target_text='允许') else: pass else: failure_info = { "status": "fail", "app_name": app_name, "package_name": package_name, "reason": f"应用市场未找到应用:{app_name}(包名:{package_name})" } self.go_back(driver, times=3) return failure_info
07-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值