I. Writing an ad page
write an ad page and call the demo on another page
(1) The design interface is as follows
(2) write the code as follows public class splashactivity extends Activity { private static final int Msg_start_menu = 1; /c12> @SuppressLint("Handlerleak") Handler mhandler = new Handler() {Public void handlemessage(android.os. Message msg) { Switch (msg. what) {Case msg_start_menu: Intent Intent = new Intent(); Intent. SetClass (splashactivity. This, homeactivity. class); startactivity(intent); finish();Break ; default:Break ; } }; }; @Override protected void onCreate(Bundle savedinstancestate) { Super. onCreate (savedinstancestate); setcontentview(R. Layout. activity_splash); //Set font Typeface fontface = Typeface. Createfromasset (getassets(), "Fonts/handwriting.ttf"); TextView textsplash = (TextView) Findviewbyid(R. ID. textsplash); Textsplash. Settypeface (fontface); //delay Start next activity Mhandler. sendemptymessagedelayed (msg_start_menu, ); }}
Operating Effect:
(3). Determine the modification pointIf you want to insert this splash page into another activity, where do you need to change it? Androidmanifest.xml
Resource copy (picture, font) resource IDControl IDInvoke the activity of the original logic
Remediation in Activity
class name Package name
Resource ID
being called activity
string
two. Decompile your apk
1. Unpacking apkApktool D test.apk
2. Catalogue DescriptionAssets storing font Resources RES storing resources such as Picture resource layout string Smali store code
Other files please refer to the development of the directory, basic one by one corresponding to note that the Res/values directory has a public.xml that the file is generated by Apktool, which saved all the ID options if you need to add a resource ID, directly here to add, Apktool will help you build it back.
three. Start the modification process
1. Unpack the target apk first
2. Adding a stringNavigate to Public.xml to join
<public type= "string" name= "Splash_info" id= "0x7f040027"/>
Navigate to String.xml Join
Make sure that the value of the ID and name do not overlap with other strings of string
3. Adding fontsTarget APK does not have assets folder, we can directly copy our assets folder to the root directory.
4. Add a pictureCopy the picture to the Res\drawable folder (note the case with the same name) we do not have duplicate names this time, if you have to take a special first
Modify the Public.xml file
<public type= "drawable" name= "Splash" id= "0x7f02001c"/>
You can see that the values and names are not duplicated after the selection.
5. Add LayoutCopy the activity_splash.xml from the layout directory below the target layout
Basically how many control IDs the activity has to define in Public.xml
To make it easy for me to replace all the dimen directly.
Modify Public.xml as follows
<public type= "id" name= "textsplash" id= "0x7f080051"/>
At the same time you need to add public.xmlID of the Activity_splash
<public type= "layout" name= "Activity_splash" id= "0x7f030023"/>
At the same time, you need to add a ids.xml
Record these 2 ID values
Textsplash 0x7f080051
activity_splash 0x7f030023
6. Add CodePut test\under the Smali\org\bing\test directorySplashactivity Copy Past Mobilesafe\smali\com\mobilesafe
At this point we find that there is alreadysplashactivity2 Different SolutionsA. Change a directory copyB. renaming
we choose the more troublesome renaming method:
(1). renaming source FilesSource file:
Renamed to: (^ _ ^ after adding a 1)
(2). Replace class nameOpen our Splashactivity1.smali.Willorg/bing/test/splashactivity all replacedCom/mobilesafe/splashactivity1
Also in the Splashactivity1$1.smali.will beorg/bing/test/splashactivity all replacedcom/mobilesafe/splashactivity1
Last modifiedhandlemessage inside homeactivity forCom/mobilesafe/splashactivity (main activity of the target app)
(3). Modify the Resource IDFind Setcontentview to modify the above constant value to
0x7f030023
Find Findviewbyid to modify the above constant value to
0x7f080051
Found to be red Smali syntax plugin is cool (please Baidu: Sublime configuration Smali Syntax plug-in with Notepad estimate and be pit a wave)
Red is due to the problem of instruction format, it is good to change const/high16 to const
7. Modify the Androidmanifest file
Change the original main activity to our activity.
8. Back to compile
The error is to review where has not yet achieved a bit
Then sign, run successfully
Four. SummaryBasically what details are needed to develop, and what points to modify here
Practical use can consider the process as an automated process, given an ad template file, automatically inserted in the appropriate location so that you can bulk insert Ads ^ _ ^
Example download link link: http://pan.baidu.com/s/1i5hlCCd Password: pc1c
From for notes (Wiz)
5. Apktool to XX Mobile defender plus advertising page