├── res ├── drawable │ ├── a.mp3 │ ├── bg.jpg │ ├── img1.png │ ├── img2.png │ ├── img3.png │ ├── play.png │ ├── rain.png │ ├── sun.png │ ├── Thumbs.db │ ├── cloudy.png │ ├── nobody.jpg │ ├── sample_0.jpg │ ├── sample_1.jpg │ ├── sample_10.jpg │ ├── sample_11.jpg │ ├── sample_2.jpg │ ├── sample_3.jpg │ ├── sample_4.jpg │ ├── sample_5.jpg │ ├── sample_6.jpg │ ├── sample_7.jpg │ ├── sample_8.jpg │ ├── sample_9.jpg │ ├── default_icon.png │ ├── picture_frame.png │ └── alert_dialog_icon.png ├── drawable-hdpi │ └── icon.png ├── drawable-ldpi │ └── icon.png ├── drawable-mdpi │ └── icon.png ├── values │ ├── arrays.xml │ └── strings.xml └── layout │ ├── sub_menu.xml │ ├── frame_layout.xml │ ├── grid_view.xml │ ├── context_menu.xml │ ├── bundle2.xml │ ├── relative_linear_left.xml │ ├── date_picker.xml │ ├── relative_linear_right.xml │ ├── image_show.xml │ ├── tab.xml │ ├── table_layout.xml │ ├── auto_complete_text_view.xml │ ├── alert_dialog.xml │ ├── spinner.xml │ ├── radio_group.xml │ ├── tab_widget.xml │ ├── check_box.xml │ ├── relative_layout.xml │ ├── rating_bar.xml │ ├── alert_dialog_text_entry.xml │ ├── notification.xml │ ├── bundle1.xml │ ├── progress_bar.xml │ └── main.xml ├── libs └── android-support-v4.jar ├── assets ├── sub_menu.xml ├── frame_layout.xml ├── grid_view.xml ├── context_menu.xml ├── relative_linear_left.xml ├── bundle2.xml ├── date_picker.xml ├── relative_linear_right.xml ├── image_show.xml ├── tab.xml ├── table_layout.xml ├── auto_complete_text_view.xml ├── alert_dialog.xml ├── spinner.xml ├── radio_group.xml ├── tab_widget.xml ├── check_box.xml ├── relative_layout.xml ├── rating_bar.xml ├── alert_dialog_text_entry.xml ├── notification.xml ├── bundle1.xml ├── progress_bar.xml └── main.xml ├── src └── com │ ├── cellcom │ ├── FrameLayoutActivity.java │ ├── RelativeLayoutActivity.java │ ├── TableLayoutActivity.java │ ├── TabDemoActivity.java │ ├── RatingBarActivity.java │ ├── RadioGroupActivity.java │ ├── OptionsMenuActivity.java │ ├── RelativeAndLinearActivity.java │ ├── AutoCompleteTextViewActivity.java │ ├── CheckBoxActivity.java │ ├── ContextMenuActivity.java │ ├── Bundle2Activity.java │ ├── SubMenuActivity.java │ ├── DatePickerActivity.java │ ├── GridViewActivity.java │ ├── Bundle1Activity.java │ ├── ProgressBarHandlerActivity.java │ ├── TabWidgetActivity.java │ ├── SpinnerActivity.java │ ├── ImageShowActivity.java │ ├── NotificationActivity.java │ ├── AlertDialogActivity.java │ └── MainActivity.java │ └── roxstudio │ └── utils │ └── Util.java ├── .classpath ├── README.md ├── project.properties ├── .project └── AndroidManifest.xml /res/drawable/a.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/a.mp3 -------------------------------------------------------------------------------- /res/drawable/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/bg.jpg -------------------------------------------------------------------------------- /res/drawable/img1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/img1.png -------------------------------------------------------------------------------- /res/drawable/img2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/img2.png -------------------------------------------------------------------------------- /res/drawable/img3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/img3.png -------------------------------------------------------------------------------- /res/drawable/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/play.png -------------------------------------------------------------------------------- /res/drawable/rain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/rain.png -------------------------------------------------------------------------------- /res/drawable/sun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/sun.png -------------------------------------------------------------------------------- /res/drawable/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/Thumbs.db -------------------------------------------------------------------------------- /res/drawable/cloudy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/cloudy.png -------------------------------------------------------------------------------- /res/drawable/nobody.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/nobody.jpg -------------------------------------------------------------------------------- /res/drawable-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable-hdpi/icon.png -------------------------------------------------------------------------------- /res/drawable-ldpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable-ldpi/icon.png -------------------------------------------------------------------------------- /res/drawable-mdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable-mdpi/icon.png -------------------------------------------------------------------------------- /res/drawable/sample_0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/sample_0.jpg -------------------------------------------------------------------------------- /res/drawable/sample_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/sample_1.jpg -------------------------------------------------------------------------------- /res/drawable/sample_10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/sample_10.jpg -------------------------------------------------------------------------------- /res/drawable/sample_11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/sample_11.jpg -------------------------------------------------------------------------------- /res/drawable/sample_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/sample_2.jpg -------------------------------------------------------------------------------- /res/drawable/sample_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/sample_3.jpg -------------------------------------------------------------------------------- /res/drawable/sample_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/sample_4.jpg -------------------------------------------------------------------------------- /res/drawable/sample_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/sample_5.jpg -------------------------------------------------------------------------------- /res/drawable/sample_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/sample_6.jpg -------------------------------------------------------------------------------- /res/drawable/sample_7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/sample_7.jpg -------------------------------------------------------------------------------- /res/drawable/sample_8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/sample_8.jpg -------------------------------------------------------------------------------- /res/drawable/sample_9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/sample_9.jpg -------------------------------------------------------------------------------- /libs/android-support-v4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/libs/android-support-v4.jar -------------------------------------------------------------------------------- /res/drawable/default_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/default_icon.png -------------------------------------------------------------------------------- /res/drawable/picture_frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/picture_frame.png -------------------------------------------------------------------------------- /res/drawable/alert_dialog_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rockswang/proxycomponent/HEAD/res/drawable/alert_dialog_icon.png -------------------------------------------------------------------------------- /res/values/arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | AAA 5 | BBB 6 | CCC 7 | DDD 8 | EEE 9 | 10 | 11 | -------------------------------------------------------------------------------- /assets/sub_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /assets/frame_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 16 | 17 | -------------------------------------------------------------------------------- /res/layout/sub_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /res/layout/frame_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 16 | 17 | -------------------------------------------------------------------------------- /assets/grid_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 15 | 16 | -------------------------------------------------------------------------------- /res/layout/grid_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 15 | 16 | -------------------------------------------------------------------------------- /src/com/cellcom/FrameLayoutActivity.java: -------------------------------------------------------------------------------- 1 | package com.cellcom; 2 | 3 | import android.app.Activity; 4 | import android.os.Bundle; 5 | 6 | import com.roxstudio.proxycomponent.Proxied; 7 | 8 | public class FrameLayoutActivity extends Proxied { 9 | 10 | @Override 11 | protected void onCreate(Bundle savedInstanceState) { 12 | // TODO Auto-generated method stub 13 | super.onCreate(savedInstanceState); 14 | setContentView(R.layout.frame_layout); 15 | } 16 | 17 | 18 | } 19 | -------------------------------------------------------------------------------- /.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 简介 2 | 实现Android Activity的代理机制,可以实现: 3 | 4 | 1. 在AndroidManifest.xml中仅声明一个代理Activity,即可打开多个被代理Activity 5 | 2. 被代理Activity可以动态更新,即使用DexClassLoader加载的Activity 6 | 7 | # 使用方法 8 | 1. 原派生于Activity的类,其超类需改为Proxied<Activity> 9 | 2. 类中原来需要传入Activity.this,或Context.this的地方,改为传入Activity.this.asActivity() 10 | 3. 在AndroidManifest增加ProxyActivity的声明,其它被代理Activity则可以删除 11 | 4. 如果入口Activity也需要代理,需在AndroidManifest中增加<meta-data android:name="PROXIED_ACTIVITY_CLASS_NAME" android:value="被代理Activity类名"/> 12 | 13 | -------------------------------------------------------------------------------- /src/com/cellcom/RelativeLayoutActivity.java: -------------------------------------------------------------------------------- 1 | package com.cellcom; 2 | 3 | import android.app.Activity; 4 | import android.os.Bundle; 5 | 6 | import com.roxstudio.proxycomponent.Proxied; 7 | 8 | public class RelativeLayoutActivity extends Proxied { 9 | 10 | @Override 11 | protected void onCreate(Bundle savedInstanceState) { 12 | // TODO Auto-generated method stub 13 | super.onCreate(savedInstanceState); 14 | 15 | setContentView(R.layout.relative_layout); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/com/cellcom/TableLayoutActivity.java: -------------------------------------------------------------------------------- 1 | package com.cellcom; 2 | 3 | import android.app.Activity; 4 | import android.os.Bundle; 5 | 6 | import com.roxstudio.proxycomponent.Proxied; 7 | 8 | public class TableLayoutActivity extends Proxied { 9 | 10 | @Override 11 | protected void onCreate(Bundle savedInstanceState) { 12 | // TODO Auto-generated method stub 13 | super.onCreate(savedInstanceState); 14 | 15 | setContentView(R.layout.table_layout); 16 | } 17 | 18 | 19 | 20 | } 21 | -------------------------------------------------------------------------------- /assets/context_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /res/layout/context_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-20 15 | android.library=false 16 | -------------------------------------------------------------------------------- /assets/relative_linear_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 17 | 18 | 26 | 27 | -------------------------------------------------------------------------------- /assets/bundle2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 16 | 17 | 18 |