[mobilesafe] 04_打包成apk和apk安装到手机上的过程

Android 4.0

打包成apk和apk安装到手机上的过程

应用程序打包以及安装过程:
1、将工程的*.java文件编译成*.class文件
2、将多个*.class文件合并成一个classes.dex文件
3、然后将classes.dex、AndroidManifest.xml、assets/目录和res/目录打包成一个*.apk包

4、将*.apk用adb工具安装到手机里面
a) 首先将*.apk包拷贝到/data/app/目录下面

注意1:/data/app/目录下的*.apk不能删除,否则程序中使用到的样式等就找不到,
应用程序也就挂了,图标也没了
注意2:SQLiteDatabase不能访问assets中的文件,而webview不同,它作了解压操作
webView.loadUrl("file:///assets/address.db");  
b) 在/data/目录下,创建一个和应用程序包名一样的空文件夹,用来保存当前应用和程序所产生的数据

c) 最后,在/data/system/目录下,的/netstats/目录下的文件packages.list和packages.xml中进行注册

packages.list中
cn.zengfansheng.mobilesafe 10044 1 /data/data/cn.zengfansheng.mobilesafe
packages.xml中
<package name="cn.zengfansheng.mobilesafe" codePath="/data/app/cn.zengfansheng.mobilesafe-1.apk" nativeLibraryPath="/data/data/cn.zengfansheng.mobilesafe/lib" flags="0" ft="14212dfdfb8" it="14212dfe68b" ut="14212dfe68b" version="3" userId="10044">
<sigs count="1">
<cert index="1" key="3082030d308201f5a0030201020204522ea98a300d06092a864886f70d01010b05003037310b30090603550406130255533110300e060355040a1307416e64726f6964311630140603550403130d416e64726f6964204465627567301e170d3133313031393135323830365a170d3433313031323135323830365a3037310b30090603550406130255533110300e060355040a1307416e64726f6964311630140603550403130d416e64726f696420446562756730820122300d06092a864886f70d01010105000382010f003082010a0282010100b01260cd178517a6eb25c6333ef8138dd55ba46223885b03cbed9299f76c34584d5db4377889bad2686e933a319ad339ac28ef648ffb0ea56bd54df2a2452aac5ef868ca287c3c1f4a661ed24b68982a6874b0b414708b1fc2ca2fd31bdb45ec97c7db7fca643a269eda2c464fd240ee88924d0f9e75a43694ea7e7bbbf53d798b8adc6c5efd49ffd531f43e35676c22cb87d64d0f8f640c0b8b03b45f32bd7f22bbe6198c5494319e96ce5659f3e73b1045c3ead377b364e7b770fb3c3f658cf582e50b69246ba6b8d6b480ca24abe30361b28579fa3b4a550e24757960138588c9b280ef803a854eb095db0c5eb9797ffefb3d2365a8f8093955c7a87a80670203010001a321301f301d0603551d0e04160414943b91cc32b00fbb64baef965d06c5063678b552300d06092a864886f70d01010b050003820101006cf43579b80165dc72d2deacad5dd7811576eefa527b0751dc46a7e27c29a8670ea105f7dc990c2b972caec5c28b8698a820b03af9baeb46e23d69306cacf4f4dacc1278c76eb01e8f2779d1c7194bfceb43555795069cc5b6405147db366cef10aad152add951d8c4c34369d49ef8f50f81878da5e8c6b75024d51e8881d019695b094f1a257acc5c5ea42543c36a82663596232c03e50a54200a31ed209a8c8494b046904a91ffda2362ca5c0f614f4b0aa0b7ea550ad98ee17e9fa51945ed666015f370bc24bcd09a9ffad94eb058b476ecd3e71115e2999648490e247f0be8cbde468ffab99d02a411abf1a12efda9c265fdad120b2fae83e7e4fd39d2c2" />
</sigs>
<perms>
<item name="android.permission.READ_EXTERNAL_STORAGE" />
<item name="android.permission.READ_PHONE_STATE" />
<item name="android.permission.RECEIVE_BOOT_COMPLETED" />
<item name="android.permission.SEND_SMS" />
<item name="android.permission.INTERNET" />
<item name="android.permission.PROCESS_OUTGOING_CALLS" />
<item name="android.permission.WRITE_EXTERNAL_STORAGE" />
<item name="android.permission.ACCESS_FINE_LOCATION" />
<item name="android.permission.ACCESS_COARSE_LOCATION" />
<item name="android.permission.RECEIVE_SMS" />
<item name="android.permission.READ_CONTACTS" />
<item name="android.permission.ACCESS_MOCK_LOCATION" />
</perms>
</package>