Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app-catalog/samples/foundation/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ android {
}
buildFeatures {
viewBinding = true
aidl = true
}
namespace 'com.wintmain.foundation'
}
Expand Down
130 changes: 68 additions & 62 deletions app-catalog/samples/foundation/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -84,155 +84,155 @@
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.RabbitLayout"
android:name=".overview.RabbitLayout"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.RegisterMember"
android:name=".overview.RegisterMember"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.RadioGroupDemo"
android:name=".overview.RadioGroupDemo"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.CheckBoxDemo"
android:name=".overview.CheckBoxDemo"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.CodeToCreateView"
android:name=".overview.CodeToCreateView"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ListDemo"
android:name=".overview.ListDemo"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.TimeGetDemo"
android:name=".overview.TimeGetDemo"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.TimeGetDemoExt"
android:name=".overview.TimeGetDemoExt"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep2_1"
android:name=".overview.ep2_1"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep2_2"
android:name=".overview.ep2_2"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep2_3"
android:name=".overview.ep2_3"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep2_4"
android:name=".overview.ep2_4"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep2_5"
android:name=".overview.ep2_5"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep2_6"
android:name=".overview.ep2_6"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep2_7"
android:name=".overview.ep2_7"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep2_8"
android:name=".overview.ep2_8"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep2_10"
android:name=".overview.ep2_10"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep2_11"
android:name=".overview.ep2_11"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep2_12"
android:name=".overview.ep2_12"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep2_13"
android:name=".overview.ep2_13"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep2_14"
android:name=".overview.ep2_14"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep2_15"
android:name=".overview.ep2_15"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep3_1"
android:name=".overview.ep3_1"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep3_1second"
android:name=".overview.ep3_1second"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep3_2"
android:name=".overview.ep3_2"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep3_3"
android:name=".overview.ep3_3"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep3_3second"
android:name=".overview.ep3_3second"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep3_5"
android:name=".overview.ep3_5"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep3_5second"
android:name=".overview.ep3_5second"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep3_6"
android:name=".overview.ep3_6"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep3_6second"
android:name=".overview.ep3_6second"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep3_7"
android:name=".overview.ep3_7"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep3_7$DetailActivity"
android:name=".overview.ep3_7$DetailActivity"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep4_1"
android:name=".overview.ep4_1"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep4_1second"
android:name=".overview.ep4_1second"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep4_2"
android:name=".overview.ep4_2"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep4_3"
android:name=".overview.ep4_3"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep4_3second"
android:name=".overview.ep4_3second"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight">
<intent-filter>
Expand All @@ -244,92 +244,92 @@
</intent-filter>
</activity>
<activity
android:name=".prejob.ep4_5"
android:name=".overview.ep4_5"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep4_6"
android:name=".overview.ep4_6"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep5_1"
android:name=".overview.ep5_1"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep5_2"
android:name=".overview.ep5_2"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep5_4"
android:name=".overview.ep5_4"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep5_5"
android:name=".overview.ep5_5"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep5_6"
android:name=".overview.ep5_6"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep5_7"
android:name=".overview.ep5_7"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep5_10"
android:name=".overview.ep5_10"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep6_1"
android:name=".overview.ep6_1"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep6_2"
android:name=".overview.ep6_2"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep6_3"
android:name=".overview.ep6_3"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep7_1"
android:name=".overview.ep7_1"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep7_2"
android:name=".overview.ep7_2"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep7_3"
android:name=".overview.ep7_3"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep7_6"
android:name=".overview.ep7_6"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.LocalBroadcastActivity"
android:name=".overview.LocalBroadcastActivity"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep9_1"
android:name=".overview.ep9_1"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep9_3"
android:name=".overview.ep9_3"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".prejob.ep9_4"
android:name=".overview.ep9_4"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />
<activity
android:name=".job.DbEntryActivity"
android:name=".overview.DbEntryActivity"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight" />

<receiver
android:name=".prejob.BootCompleteReceiver"
android:name=".overview.BootCompleteReceiver"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
Expand All @@ -338,20 +338,26 @@

<!--静态注册一个广播接收者-->
<receiver
android:name=".prejob.MyBroadcastReceiver"
android:name=".overview.MyBroadcastReceiver"
android:exported="false">
<!--定义一个意图过滤器来接收(监听)指定的action-->
<intent-filter>
<action android:name="com.android.MY_BROADCAST" />
</intent-filter>
</receiver>
<receiver
android:name=".prejob.AnotherBroadcastReceiver"
android:name=".overview.AnotherBroadcastReceiver"
android:exported="false">
<intent-filter>
<action android:name="com.android.MY_BROADCAST_EXT" />
</intent-filter>
</receiver>

<service
android:name=".PeopleRemoteService"
android:process=":remote"
android:enabled="true"
android:exported="true" />
</application>

</manifest>
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// INewPeopleListener.aidl
package com.wintmain.foundation;

import com.wintmain.foundation.People;

// AIDL中无法使用普通接口,所以创建此文件

interface INewPeopleListener {
void onNewPeople(in People newPeople);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// IPeopleManager.aidl
// AIDL接口中只支持方法,不支持声明静态常量
package com.wintmain.foundation;

// 自定义的Parcelable对象和AIDL对象不管是否和当前的AIDL文件位于同一个包内,也必须要显式import进来

import com.wintmain.foundation.People;
import com.wintmain.foundation.INewPeopleListener;

interface IPeopleManager {
List<People> getPeopleList();
// addPeople方法的参数中有in关键字,因为aidl中除了基本数据类型,其它类型的参数必须标上方向:in、out或者inout,
// 我们需根据实现需要去指定参数类型,因为这在底层实现是有开销的。
void addPeople(in People people);

// 扩展新增代码:新增接口
void registerListener(INewPeopleListener listener);
void unregisterListener(INewPeopleListener listener);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// People.aidl
package com.wintmain.foundation;

// Declare any non-default types here with import statements

// 在Android的AIDL中,仅支持的数据类型有:
// 1. 基本数据类型(int、long、char、boolean、double等)
// 2. String和CharSequence
// 3. List:只支持ArrayList,里面的每个元素都必须能够被AIDL支持
// 4. Map:只支持HashMap,里面的每个元素都必须能够被AIDL支持
// 5. Parcelable:所有实现了Parcelable接口的对象
// 6. AIDL:所有的AIDL接口本身也可以在AIDL文件中使用

// Parcelable的作用是序列化对象,因为跨进程通信传输对象必须是以序列化和反序列化的方式进行。
// Parcelable的实现有些繁琐,但性能效率很高。

import com.wintmain.foundation.People;

// People should be declared in a file called com/wintmain/foundation/People.aidl
parcelable People;
Loading