تغيير در برنامه‌هاي آندرويدي مهندسي معكوس در آندرويد

 

در دنياي برنامه‌نويسي يكي از مهم‌ترين عوامل، نگهداري برنامه‌ها و اعمال تغييرات در كمترين زمان ممكن است. اين عوامل شامل چند بخش مي‌شود؛ بخش مهم و اساسي آن در نگهداري كد‌هاي برنامه و قابليت توسعه‌پذيري برنامه است و بخش ديگر مربوط به ظاهر برنامه يا متن‌هاي به كار رفته در برنامه مي‌شود. در اين شماره قصد داريم بگوييم شما چگونه مي‌توانيد يك برنامه آندرويدي را كه توسط فرد يا شركت ديگري توسعه پيدا كرده‌ است، تغيير دهيد.پيش از هر چيز به ياد داشته باشيد كه به عنوان برنامه‌نويس همواره از نوشتن Hard-Code خودداري كنيد. با يك مثال Hard-Code يا كد سخت را توضيح مي‌دهيم. شما برنامه‌اي را توسعه داده‌ايد. رشته متني كه براي ارتباط با پايگاه داده شما به كار مي‌رود در كد شما ذخيره شده ‌است و هر بار كه مي‌خواهيد با پايگاه داده ارتباط برقرار كنيد، آن رشته را درون كد خود به صورت يك متن قرار مي‌دهيد. اما حساب كنيد مشتري شما قصد تغيير سيستم پايگاه داده خود را دارد. بنابراين شما نياز داريد هر جا كه از آن رشته متني استفاده كرده‌ايد، آن را تغيير دهيد. هر چه برنامه بزرگ‌تر باشد اين رشته‌هاي متني كه قرار است تغيير كند، بيشتر مي‌شود.چگونه از اين كار جلوگيري كنيم؟ براي اين‌كار شما مي‌توانيد از فايل‌هاي Resource در كنار برنامه استفاده كنيد تا در صورت تغيير، در كمترين زمان ممكن اين كار را انجام دهيد. ‌اين منابع علاوه بر رشته‌ها مي‌تواند شامل عكس‌هاي برنامه نيز بشود.حالا قبل از اين‌كه سراغ تغيير در برنامه‌هاي آندرويد برويم، ساختار برنامه‌ها را يك مرور كلي مي‌كنيم. پروژه آندرويدي شامل يك فايل به نام Android.manifest است كه اطلاعات اصلي برنامه را دربردارد. در تغيير آن بايد به‌دقت عمل كنيد. اگر اين فايل مشكلي داشته باشد، برنامه‌ها كلا از كار خواهد افتاد. دو پوشه نيز به نام‌هاي src‌ كه سورس برنامه در آن قرار دارد و يك فولدر res كه شامل منابع برنامه است، وجود دارد. مثل layout و عكس‌ها و رشته‌هاي متني و اعدادي كه قرار است در برنامه به صورت عمومي استفاده شود و...ما اگر بخواهيم در منابع يك برنامه تغييراتي بدهيم، قطعا سراغ پوشه layout‌مي‌رويم؛ اما ما قرار است در برنامه‌اي كه نوشته شده تغييرات ايجاد كنيم.برنامه‌هاي آندرويد كه كامپايل مي‌شود شامل يك‌سري فايل dex بوده كه در واقع كامپايل شده كد جاواي شما براي ماشين مجازي Dalvik است و بقيه محتويات آن منابع و كتابخانه‌هايي را شامل مي‌شود كه شما از آن استفاده كرده‌ايد. فايل خروجي آن كه در واقع فايل اجراي برنامه آندرويدي شماست به فرمت apk بوده كه يك فايل zip و ساين شده، است. دسترسي به محتويات اين فايل با Extract‌كردن آن امكان‌پذير است. اما اگر بخواهيد با Extract كردن، در برنامه آندرويد خود تغيير ايجاد كنيد، با مشكلات عديده‌اي مواجه خواهيد شد. شما با استفاده از apk-tool كه يك برنامه نوشته شده با جاواست، فايل‌هاي apk خود را باز و اصطلاحا Decompile كنيد. سپس تغييراتي كه مي‌خواهيد در آنها بدهيد و دوباره آنها را از اول build كنيد. (توجه داشته باشيد كه اين برنامه فقط منابع فايل را به شما مي‌دهد و نمي‌تواند كد را Decompile كند).شما مي‌توانيد برنامه را از اين آدرس دانلود كنيد:

code.google.com/p/android-apktool

نسخه ويندوزي آن شامل يك فايل bat است كه كاركردن با آن را براي شما راحت مي‌كند.





تاريخ : چهار شنبه 14 تير 1391برچسب:, | | نویسنده : مقدم |