안 드 로 이 드 의 구성 요소 화 간단 한 사용
19472 단어 Android
# true false
isNeedHomeModule = true
isNeedChatModule = true
isNeedContractModule = true
3.각 하위 구성 요소 의 build.gradle 에서 1 을 수정 하고 머리 에서 수정 합 니 다.
// , module
if(!isNeedHomeModule.toBoolean())
{
apply plugin: 'com.android.application'
}else{
apply plugin: 'com.android.library'
}
2, android-> defaultConfig
android {
compileSdkVersion 28
defaultConfig {
// , applicaton
if(!isNeedHomeModule.toBoolean()) {
applicationId "com.cg.home"
}
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
}
3.각 하위 구성 요소 의 android manifest.xml 파일 을 src->main 아래 에 manifest 폴 더 를 만 들 고 그 안에 android manifest.xml 파일 을 만 들 고 바깥 의 android manifest.xml 내용 을 복사 하여 바깥 의 android manifest.xml 내용 을 수정 합 니 다.무엇 을 수정 합 니까?기본 시작 페이지 를 제거 하 는 것 입 니 다.
다음은 정상 적 인 androidmanifest.xml 입 니 다.
지금 은 차이 점 을 보 았 습 니 다.왜 여 기 를 바 꾸 려 고 합 니까?여기 서 고치 지 않 으 면 독립 적 인 개발 을 하지 않 을 때 app 을 설치 하면 여러 개의 시작 페이지 가 있 습 니 다.그러면 손 에 여러 개의 app 의 진입 아이콘 이 나타 납 니 다.
android manifest.xml 를 추가 한 후 build.gradle 파일 을 수정 하여 android 에 추가 합 니 다.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.cg.home">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
4.주 app 의 build.gradle 에 인용 을 추가 합 니 다.
sourceSets{
main{
// home , module ,
if(!isNeedHomeModule)
{
manifest.srcFile 'src/main/manifest/AndroidManifest.xml'
}else{
manifest.srcFile 'src/main/AndroidManifest.xml'
}
}
}
독립 개발 을 할 때 는 인용 이 필요 하 다.
자,여기까지.구성 요소 화 는 처리 가 완료 되 었 더 라 도 실행 하면 gradle.properties 에서 우리 가 정의 한 변수 값 을 수정 하면 독립 개발 여 부 를 실현 할 수 있 습 니 다.
ARouter 의 인용 과 사용 을 살 펴 보 겠 습 니 다.
우 리 는 commonlib 의 역할 이 공용 코드 를 추출 하기 위 한 것 이 라 고 정 의 했 습 니 다.그러나 ARouter 안의 일부 코드 는 여기에 넣 을 수 없습니다.그렇지 않 으 면 항상 오 류 를 알려 줍 니 다.이것 은 구덩이 라 고 할 수 있다.이제 우 리 는 ARouter 를 어떻게 도입 하 는 지 설명 하 나 를 만 들 고 모든 module 은 comonlib 를 참조 합 니 다.2.comonlib 의 built.gradle 에 도입
if(isNeedChatModule.toBoolean())
{
implementation project(':chat')
}
if(isNeedContractModule.toBoolean())
{
implementation project(':contract')
}
if(isNeedHomeModule.toBoolean())
{
implementation project(':home')
}
implementation project(':commonlib')
그럼요.dommlib 에 넣 지 않 고 각 module 에 독립 적 으로 추가 해도 됩 니 다.3.각 module 에 도입 할 수 있 습 니 다.
compile "com.alibaba:arouter-api:1.5.0"
동시에 android->defaultConfig 에 추가
annotationProcessor 'com.alibaba:arouter-compiler:1.2.2'
메 인 앱 에 도 추가 해 야 합 니 다.
4.ARouter 를 초기 화 하 는 것 은 주 app 에서 우리 자신의 my Appllication 을 정의 하 는 것 입 니 다.
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.cg.modulelearn"
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
// ARouter
javaCompileOptions {
annotationProcessorOptions {
arguments = [AROUTER_MODULE_NAME: project.getName()]
}
}
}
이렇게 집성 이 끝 났 으 니,이제 어떻게 점프 하고 전달 하 는 지 보 자.
1.하위 module 에서 우 리 는 주 해 를 진행 해 야 한다.
public class myApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
initRouter();
}
private void initRouter() {
if(BuildConfig.DEBUG)
{
ARouter.openLog();
ARouter.openDebug();
}
ARouter.init(this);
}
}
주 app 의 코드
// , , path app
@Route(path="/home/main")
public class MainActivity extends AppCompatActivity {
private TextView txt_homeTitle;
// title , , @Autowired
@Autowired
public String title;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_homemain);
// ARouter
ARouter.getInstance().inject(this);
Log.e("MainActivity.java(onCreate)", " : 25 title:" + title);
initControls();
}
/**
*
*/
private void initControls() {
txt_homeTitle = (TextView)findViewById(R.id.txt_homeTitle);
txt_homeTitle.setText(title);
}
}
이것으로 완성 하 다.여 기 는 단지 간단하게 사용 기록 을 만 들 뿐이다.이것 은 두 명의 큰 신 에 참여 한 코드 입 니 다.주 소 는 다음 과 같 습 니 다.한 편의 글 은 구성 요 소 를 이해 하고 한 문 은 구성 요 소 를 이해 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.