{"id":13420523,"url":"https://github.com/liyuming1978/NativeLibCompression","last_synced_at":"2025-03-15T07:31:13.263Z","repository":{"id":18281860,"uuid":"21448611","full_name":"liyuming1978/NativeLibCompression","owner":"liyuming1978","description":"The native library compression sdk is given to solve the apk size problem. It is easy to integrate and will get max 50% size decreasing. Not only sdk, a Java tool for package is provided to convert normal apk to compressed apk. ","archived":false,"fork":false,"pushed_at":"2017-03-24T01:51:41.000Z","size":9049,"stargazers_count":95,"open_issues_count":1,"forks_count":42,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-07-31T22:55:27.942Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/liyuming1978.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-07-03T03:27:38.000Z","updated_at":"2024-01-21T06:16:41.000Z","dependencies_parsed_at":"2022-09-17T00:10:26.119Z","dependency_job_id":null,"html_url":"https://github.com/liyuming1978/NativeLibCompression","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liyuming1978%2FNativeLibCompression","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liyuming1978%2FNativeLibCompression/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liyuming1978%2FNativeLibCompression/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liyuming1978%2FNativeLibCompression/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/liyuming1978","download_url":"https://codeload.github.com/liyuming1978/NativeLibCompression/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243700930,"owners_count":20333614,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T22:01:35.435Z","updated_at":"2025-03-15T07:31:11.596Z","avatar_url":"https://github.com/liyuming1978.png","language":"C","funding_links":[],"categories":["TODO scan for Android support in followings"],"sub_categories":[],"readme":"﻿\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Arial, sans-serif;\"\u003eNativeLibCompression\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Arial, sans-serif;\"\u003e====================\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Arial, sans-serif;\"\u003eThere are lots of NDK apps on Google software market. To\r\nreduce package size, some ISV will only release Separate APK. A native library\r\ncompression sdk is given to solve the apk size problem. It is easy to integrate\r\nand will get max 50% size decreasing. Beside sdk, a Java tool for package is\r\nprovided to convert normal apk to compressed apk.\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Arial, sans-serif;\"\u003e\u0026nbsp;\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cb\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Arial, sans-serif;\"\u003eHOW TO USE IT:\u003c/span\u003e\u003c/b\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Arial, sans-serif;\"\u003e\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Arial, sans-serif;\"\u003e1.Include DecRawso into your project (if you use ant,\r\nplease copy\u0026nbsp;\u003cb\u003eDecRawso_Jar\u0026nbsp;\u003c/b\u003eto your project , and add the\r\nDecrawso.jar, do not use the jar in the sdk bin folder)\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Arial, sans-serif;\"\u003e2.Call DecRawso.NewInstance\u0026nbsp;\u003cb\u003ebefore any native\r\nlibrary loading!!!\u003c/b\u003e\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Arial, sans-serif;\"\u003e3.Replace all system.loadlibrary(***) to\r\nsystem.load(DecRawso . GetInstance ().GetPath(***))\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Arial, sans-serif;\"\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; now, it is\r\nrecommend to change to system.load, but system.loadlibrary also work.\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Arial, sans-serif;\"\u003e--- build your apk as usual, and run your apk as usual\r\nwhen in your development, the apk is not compressed.\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Arial, sans-serif;\"\u003e\u0026nbsp;\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cb\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Arial, sans-serif;\"\u003eHOW TO COMPRESS THE APK: -- Use compress tool :\r\nApkLibCompress/bin/ ComPressApk.jar\u003c/span\u003e\u003c/b\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Arial, sans-serif;\"\u003e\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Arial, sans-serif;\"\u003e1.You can use it as:\u0026nbsp;\u003cb\u003e\u0026nbsp;ComPressApk.jar -a\r\nC:/my/test.apk -k c:/key storepass keypass alias [your keyname] -x86\r\nhttp://www.test.com\u003c/b\u003e\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Arial, sans-serif;\"\u003e2.if “-k” is missing, eclipse default test key will be\r\nused to sign this apk.\u0026nbsp;\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Arial, sans-serif;\"\u003e3.[you keyname] is optional, if not have it. the\r\ndefalt\u0026nbsp;\u003cb\u003eCERT\u0026nbsp;\u003c/b\u003ewill be used\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Arial, sans-serif;\"\u003e4.If -x86 with link is used, then x86 library will be\r\nstored on http://www.test.com/cloudrawso_x86, \u0026nbsp; you must store the lib on\r\nthe network bu manuanlly.\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Arial, sans-serif;\"\u003e5.you can put\u0026nbsp;\u003cb\u003earm lib on x86 folder\u0026nbsp;\u003c/b\u003eto\r\navoid library miss on x86 devices, use -\u003cb\u003enox86check\u0026nbsp;\u003c/b\u003eto forbidden the\r\ncheck (x86 directly cal arm lib is\u0026nbsp;\u003cb\u003eunsafed\u003c/b\u003e)\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan style=\"font-family: Arial, sans-serif; line-height: 170%;\"\u003e6.you can copy all of \"\u003cb\u003eDecRawso_Jar\u003c/b\u003e\"\r\ninto your project if you use \"ant\" to package your project\u003c/span\u003e\u003cspan style=\"font-family: Arial, sans-serif; line-height: 170%;\"\u003e\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan style=\"font-family: Arial, sans-serif; line-height: 170%;\"\u003e7.\u003cstrong\u003enew flag\u003c/strong\u003e:\u0026nbsp;\u003c/span\u003e\u003cspan style=\"font-family: Arial, sans-serif; line-height: 170%;\"\u003e\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan style=\"font-family: Arial, sans-serif; line-height: 170%;\"\u003e\u0026nbsp; -o outputfilename\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; define\r\nthe finaly output file name\u003c/span\u003e\u003cspan style=\"font-family: Arial, sans-serif; line-height: 170%;\"\u003e\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan style=\"font-family: Arial, sans-serif; line-height: 170%;\"\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; -slience \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp;\r\n\u0026nbsp; \u0026nbsp; no popup window, that is suitable for ant package\u003c/span\u003e\u003cspan style=\"font-family: Arial, sans-serif; line-height: 170%;\"\u003e\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan style=\"font-family: Arial, sans-serif; line-height: 170%;\"\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; -nosign \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp;\r\n\u0026nbsp; \u0026nbsp; do not sign the apk, that is suitable for ant package , due to\r\nthe ant will sign apk\u003c/span\u003e\u003cspan style=\"font-family: Arial, sans-serif; line-height: 170%;\"\u003e\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"text-indent: 14.25pt; line-height: 17.85pt;\"\u003e\u003cspan style=\"font-family: Arial, sans-serif; line-height: 170%;\"\u003e-nox86check\u0026nbsp;\u0026nbsp; \u0026nbsp; \u0026nbsp;do not check x86 library missing and mix use of arm\r\nissue (x86 directly call arm library is forbidden default)\u003c/span\u003e\u003cspan style=\"font-family: Arial, sans-serif; line-height: 170%;\"\u003e\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"text-indent: 14.25pt; line-height: 17.85pt;\"\u003e\u003cspan style=\"font-family: Arial, sans-serif; line-height: 170%;\"\u003e-noarm \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; do\r\nnot compress arm lib. just put x86 lib on the cloud (with –x86)\u003c/span\u003e\u003cspan style=\"font-family: Arial, sans-serif; line-height: 170%;\"\u003e\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan style=\"font-family: Arial, sans-serif; line-height: 170%;\"\u003e\u003cstrong\u003e8.how to know the result (when you use ant)\u003c/strong\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan style=\"line-height: 170%;\"\u003e\u003cspan style=\"line-height: 100%; font-family: Arial, sans-serif;\"\u003e\u0026nbsp; \u0026nbsp; now will create 3 files in the\r\nApkLibCompress.jar folder\u003c/span\u003e\u003cspan style=\"line-height: 100%; font-family: Arial, sans-serif;\"\u003e\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan style=\"line-height: 170%;\"\u003e\u003cspan style=\"line-height: 100%; font-family: Arial, sans-serif;\"\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; :Done.flag \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; you can check whether the file is exist , if\r\nexist , then\u0026nbsp;\u003cb\u003ecompression is ok\u003c/b\u003e\u003c/span\u003e\u003cspan style=\"line-height: 100%; font-family: Arial, sans-serif;\"\u003e\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan style=\"line-height: 170%;\"\u003e\u003cspan style=\"line-height: 100%; font-family: Arial, sans-serif;\"\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; :error.log \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; if generation fail, the log will has the\r\nreason\u003c/span\u003e\u003cspan style=\"line-height: 100%; font-family: Arial, sans-serif;\"\u003e\u003co:p\u003e\u003c/o:p\u003e\u003c/span\u003e\u003c/span\u003e\u003c/p\u003e\r\n\r\n\u003cp class=\"MsoNormal\" align=\"left\" style=\"line-height: 17.85pt;\"\u003e\u003cspan style=\"font-family: Arial, sans-serif; line-height: 170%;\"\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; :porting.log\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; it will show the x86/arm mix using or x86\r\nlib missing issue\u003c/span\u003e\u003c/p\u003e\r\n\r\nhttp://blog.csdn.net/onlySound/article/details/58620502\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliyuming1978%2FNativeLibCompression","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fliyuming1978%2FNativeLibCompression","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliyuming1978%2FNativeLibCompression/lists"}