租房app是目前市场上非常受欢迎的一种应用程序,它主要针对租房需求的用户,然后提供租房信息、房源信息和房源管理等功能。
本文将介绍如何开发一款安卓租房app,包括app的功能、技术实现原理以及详细的源码解析。
一、app功能
租房app通常要包含以下几个主要的功能:
1.地图展示
地图展示功能是当用户进入租房app后,可以通过点击地图标注查看一个地区内的租房信息。在该功能中,用户可以根据自己的兴趣、需求选择一个地区,在地图上查看所有的租房信息。
2.房源展示
房源展示功能是通过房源列表的形式展示每一间出租屋,并提供详细的房间信息和房间照片,以及房屋准确的位置。用户可以查看每个出租屋的详细信息并进行筛选。
3.创建信息
提供买卖房屋的个人和中介,可以在这个平台上发布房屋信息,让更多的租房者可以看到,还可以用户通过填写一些必要的信息来发布自己的想要出租的房屋信息。
4.搜索功能
提供搜索功能,用户可以根据自己的需求,输入关键词筛选出适合自己的房源信息,来进行筛选并选择。
5.在线聊天
提供一个在线聊天,让用户可以在线沟通,来解答租房相关的问题。在租房流程中,用户可以通过这个在线聊天与房屋的中介或跟房东交流有关房屋的信息。
二、技术实现原理
1.地图展示
地图展示是很多app上都会涉及的功能,Google Map是目前最为流行和广泛使用的开源地图引擎。针对于android应用,我们可以采用Google Maps API来实现地图展示的功能。
Google Maps API主要有以下2个版本:
Google Maps JavaScript API:提供了javascript版的文档和demo,可以在web端实现地图展示的功能。
Google Maps Android API:是开发安卓应用程序的专用地图API。在使用Google Maps Android API开发地图功能时,可以轻松实现动态的地图展示,包括地图视图的操作和缩放。
2.房源展示
房源展示涉及到数据获取和数据展示两个过程。数据获取可以通过网络请求API接口实现,同时在数据请求过程中也可以进行数据处理和缓存处理。
数据展示可以采用listview,gridview和reyclerview等方式来实现。其中,listview是最常用的方法之一。使用listview显示数据时,可以通过适配器实现,使用适配器可以方便地将一个数据列表集合,展示到listview 控件上。
3.创建信息
数据的创建和更新通常采用Http传输协议,使用Http传输协议可以实现数据的增删改查。
4.搜索功能
实现搜索功能的方式,可以通过使用搜索引擎Biubiubiu,Biubiubiu为使用者提供多样化的搜寻。通过搜索框提供的展开菜单,可选择设定搜寻范围,提高搜寻的准确度。
5.在线聊天
实现在线聊天需要使用推送技术,推送技术可以帮助我们快速地获取到最新的房屋动态消息和信息。
在推送技术方面,Google为开发者提供了 Firebase Cloud Messaging (FCM)。使用FCM进行推送,需要在Firebase平台上注册并获取FCM的服务密钥,然后将该密钥用于android工程的配置,即可实现推送功能。
三、源码解析
1.环境要求
jdk1.8及以上
android studio 3.2及以上
1.1 google-services.json
google-services.json文件是谷歌应用程序的配置文件,提供了在开发app时所需要的google服务。在gradle构建时,插件会自动为您的应用程序完成这个文件的合成。同时,这个文件也包含了与应用相关的URL、密钥等等敏感信息,所以不应该泄露出去。
1.2 app build.gradle
```
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
android {
compileSdkVersion 28 //设置API版本号
defaultConfig {
applicationId "com.example.neighbor" //设置应用程序包名
minSdkVersion 21 //设置最低SDK版本号
targetSdkVersion 28
versionCode 1 //设置应用程序的版本号,整数
versionName "1.0" //设置应用程序的版本名,字符串
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
buildConfigField "String", "HOST_NAME", "\"www.abc.com\""
}
buildTypes {
release {
minifyEnabled false //设置是否压缩代码
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dataBinding {
enabled = true
}
lintOptions {
checkReleaseBuilds false
abortOnError false
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/rxjava.properties'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
implementation 'com.xiaoshouyi:biubiubiu:1.0.0' //实现搜索功能
// Import the Firebase BoM
implementation platform('com.google.firebase:firebase-bom:28.3.1')
implementation 'com.google.firebase:firebase-core'
implementation 'com.google.firebase:firebase-messaging'
implementation 'com.google.android.gms:play-services-maps:17.0.1'
}
```
1.3 集成Google Map
在app中集成google map,需要在使用google play商店上搜索Google Maps API进行下载和安装;同时,为了保证App正常运行,还需要在开发控制台中进行Google Maps API配置,打开SDK Manager,找到Google Play Services,下载并安装最新版本的Google Play Services。
在开发控制台中,选择APIs & auth > APIs, 在 API 管理面板中 找到Google Maps API,Activiate 这个API,同时还需要启用开发者控制台以及地图Android API服务。代码如下:
```
android:id="@+id/map" class="com.google.android.gms.maps.SupportMapFragment" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 1.4 集成Biubiubiu 在集成Biubiubiu SDK之前,需要先在官方SDK页面注册开发者账号,得到需要的APPID,然后在build.gradle文件中配置如下: ``` compile 'com.xiaoshouyi:biubiubiu:1.0.0' ``` 然后,在需要添加搜索功能的activity中,添加如下代码: ``` public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { public static final int SEARCH_REQUEST_CODE = 101; private BiubiubiuSearch mSearch; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ... mSearch = new BiubiubiuSearch(this, "YOUR_APP_ID"); mSearch.setOnSearchResultClickListener(new OnSearchResultClickListener() { @Override public void onSearchResultClick(SearchResult result) { // Handle click on search result object. } }); } // ... void startBiuBiuBiuSearch() { mSearch.startSearch(SEARCH_REQUEST_CODE); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == SEARCH_REQUEST_CODE && resultCode == RESULT_OK) { SearchResult result = mSearch.onSearchResultActivityResult(requestCode, resultCode, data); // Handle search result object. } } } ``` 以上代码演示了如何在应用中使用Biubiubiu SDK,在完成SDK的初始化和相关配置后,就可以使用mSearch对象开始搜索了。 五、总结 以上就是一款安卓租房app的基本实现和源码解析。在本文中,我们讨论了租房app的主要功能、技术实现原理以及详细的源码解析。希望能够对大家在开发类似应用的时候有所帮助。